您好我正在尝试使用childNodes访问节点的元素。这是一个示例XML
<ROOT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<node>
<nodeid>28</nodeid>
<account_no xsi:nil="true" />
<address1>15 CANCUN CT</address1>
<serial_no>112199543</serial_no>
<x_lat>25.95513358000</x_lat>
<y_lon>-97.49027147000</y_lon>
<alarm>
<alarmid>Outage</alarmid>
<alarmtime>2012-07-30T14:46:29</alarmtime>
</alarm>
<alarm>
<alarmid>Restore</alarmid>
<alarmtime>2012-07-30T14:48:37</alarmtime>
</alarm>
</node>
</ROOT>
我正在尝试获取第二个childNodes,但无法使用javascript。但是我可以通过这个js代码从第一个获得nodevalues。
var alarmId = xmlDocOut.getElementsByTagName('alarmid')[i].childNodes[0].nodeValue;
var alarmTime = xmlDocOut.getElementsByTagName('alarmtime')[i].childNodes[0].nodeValue;
如果我尝试使用... [i] .childNodes [1] .nodeValue,js将在该行上抛出一个错误,上面写着'Object Required'。
我试过了
...[i].childNodes[1...4].nodeValue
和
...[i].childNodes[0].childNodes[0].nodeValue.
仍然没有!
答案 0 :(得分:0)
xmlDocOut.getElementsByTagName('alarmid')[i] .childNodes [1]不存在;每个alarmId节点只有1个子节点;文本节点。
例如:
<alarmid>Outage</alarmid>
有1个childNode;带有text ==“Outage”的textNode。
答案 1 :(得分:0)
我知道了,我只需要在下标中添加一个... [i + 1] .childNodes [0] .nodeValue来获取第二个报警元素。