javascript xml getElementsByTagName 其中 tag 是一个数字
javascript xml getElementsByTagName where tag is a number
我的JavaScript代码中有一段已经运行良好了一段时间,可以从传入的xml通信中获取值,但它突然停止报告某些标签找到的任何元素。 我做了一些查找,似乎只有数字标签才会受到此影响,一旦我切换回字母,一切正常。 有什么原因为什么我不能只使用数字吗?
Javascript 代码:
xmlhttp.onreadystatechange=function()
{
xmlDoc=xmlhttp.responseXML;
x=xmlDoc.getElementsByTaName("VAR");
alert(x.length); // <- reports 0 when numbers are used as tags
var dataBack = [];
for (j=0;j<x.length;j++) {
dataBack[j] = x[0].getElementsByTagName(x[j])[0].childNodes[0].nodeValue);
}
useXMLdata(dataBack);
}
我尝试在我的数字标签中添加一个字母,它神奇地开始工作。 我用它来实际捕获标签,但我很好奇为什么我不能只使用数字。
只是数字的元素(例如 <8>Some content</8>
) 似乎不是有效的 XML。
XML 规范非常粗糙,但第 3.1 节定义了开始标记命名。 开始标记名称必须以NameStartChar
字符开头,然后继续使用任意数量的NameChar
字符。
NameStartChar
似乎是NameChar
的一个子集,其中不包括数字 0-9 等。 因此,有效的标记名称不能以数字开头。
我怀疑您的 XML 是否会验证它是否包含 XML 元素,例如 <8>Something</8>
. 我不知道这是否是你的JavaScript失败的原因,但这足以说明不以这种方式构建你的XML。
编辑
尝试将以下 XML 插入验证程序:
<?xml version="1.0" ?>
<Root>
<Child>
<1xyz>Content</1xyz>
</Child>
</Root>
这将给出错误 <1xyz>
标记的元素名称无效。 即使SO也不喜欢它,因此缺乏语法突出显示!
相关文章:
- 递增一个数字而不去掉前导零
- 制作一个regex来验证只有一个数字的字符串
- 如何使用至少一个数字、一个大写字母和6-20个字符验证密码
- 有没有办法在里面看到一个数字'的64位浮点IEEE754表示
- 我如何解析二's是一个数字的补码字符串
- 为什么我需要在这里输入var,为什么它会给我一个数字作为答案?(Javascript)
- 为什么 JavaScript 如果一个数字有一个前导零,就将其视为八进制
- 增加一个数字并将其附加到函数
- 如何让计算机猜测一个数字并返回猜测次数(Javascript)
- 正则表达式删除最后一个数字之后的字符串
- 用户在文本框中输入一个数字,并根据使用 PHP 输入的数字重定向到另一个网页
- 每次使用 Javascript 加载页面时增加一个数字(变量)的简单方法
- Javascript Regexp :如果一个字母与一个数字相邻,请添加下划线
- jQuery UI Slider ui.value 获取最后一个数字
- JavaScript 使用多少位来表示一个数字
- Javascript提示和警报输入一个数字,它将循环,您将输入数字以获得它的平均值
- RXJS 为什么只有最后一个数字同时有 a 和 b
- 检查字符串是否等于一个单词和一个数字
- 对负指数调用的.toFixed()返回一个数字,而不是字符串
- 脚本每天添加相同的数字,月底再添加一个数字