我用Javascript解析XML。我的XML看起来像这样:JS XML解析:值不变
<?ml version="1.0" encoding="UTF-8">
<IPC_XML>
<dfr>
<dfr>
<data>
<analog>
<channel index="0">
<label>Channel 1</label>
</channel>
<channel index="1">
<label>Channel 2</label>
</channel>
</analog>
</data>
</dfr>
</dfr>
</IPC_XML>
忽略奇怪的结构(超出我的控制范围)。我正在运行这个JS代码:
function updateAnalogCfgValues (xmlDoc) {
var analogCfgs = xmlDoc.selectNodes ("//channel");
var cfg = analogCfgs.nextNode();
var cnt = 1;
while (cfg !== null) {
var node = document.getElementById ("aChan"+cnt);
var tmp = document.createElement ("b");
tmp.innerText = cfg.selectSingleNode ("//label").text;
node.appendChild (tmp);
cfg = analogCfgs.nextNode(); cnt++;
}
}
当我在调试器看东西,事情看起来很好。我可以看到cfg
变量的变化,我可以看到它的第一个孩子是<label>
元素,其值也在变化。问题是,当我查看HTML时,我看到的只是一遍又一遍的“频道1”。该文本从不改变。有任何想法吗?
编辑:任何机会我的selectSingleNode
电话现在'刷新'(缺乏更好的术语)?
我想尝试的第一件事是将标签更改为/标签 - 但我无法测试,因此我不确定它的答案是否... – Murph 2011-05-31 16:42:48
使用'/ label',我得到对于没有文本属性的空对象的例外。 – Nik 2011-05-31 16:47:14
嗯,只是标签呢? – Murph 2011-06-01 07:44:42