XML/Input: Difference between revisions
no edit summary
No edit summary |
No edit summary |
||
Line 2,776:
=={{header|Yabasic}}==
<lang Yabasic>// ========== routine for set code conversion ================
<lang Yabasic>xml$ = "<Students>\n"▼
data 32, 173, 189, 156, 207, 190, 221, 245, 249, 184, 166, 174, 170, 32, 169, 238
data 248, 241, 253, 252, 239, 230, 244, 250, 247, 251, 167, 175, 172, 171, 243, 168
data 183, 181, 182, 199, 142, 143, 146, 128, 212, 144, 210, 211, 222, 214, 215, 216
data 209, 165, 227, 224, 226, 229, 153, 158, 157, 235, 233, 234, 154, 237, 232, 225
data 133, 160, 131, 198, 132, 134, 145, 135, 138, 130, 136, 137, 141, 161, 140, 139
data 208, 164, 149, 162, 147, 228, 148, 246, 155, 151, 163, 150, 129, 236, 231, 152
initCode = 160 : TOASCII = 0 : TOUNICODE = 1 : numCodes = 255 - initCode + 1
dim codes(numCodes)
for i = 1 to numCodes : read codes(i) : next
sub codeConversion(charcode, tocode)
local i
if tocode then
for i = 1 to numCodes
if codes(i) = charcode return i
next
else
return codes(charcode - initCode + 1)
end if
end sub
// ========== end routine for set code conversion ============
xml$ = xml$ + " <Student Name=\"April\" Gender=\"F\" DateOfBirth=\"1989-01-02\" />\n"
xml$ = xml$ + " <Student Name=\"Bob\" Gender=\"M\" DateOfBirth=\"1990-03-04\" />\n"
Line 2,790 ⟶ 2,818:
tag2$ = "Name=\""
ltag = len(tag2$)
sub convASCII$(name$, mark$)
local p, c, lm
lm = len(mark$)
do
p = instr(name$, mark$, p)
if not p break
c = dec(mid$(name$, p + lm, 4))
c = codeConversion(c)
name$ = left$(name$, p-1) + chr$(c) + right$(name$, len(name$) - (p + lm + 4))
p = p + 1
loop
return name$
end sub
do
Line 2,797 ⟶ 2,841:
p = p + ltag
p2 = instr(xml$, "\"", p)
name$ = convASCII$(mid$(xml$, p, p2 - p), "&#x")
print name$
loop</lang>
|