0

こんにちは、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>

2 番目の childNodes を取得しようとしていますが、javascript を使用できません。ただし、このjsコードで最初からノード値を取得できます。

var alarmId = xmlDocOut.getElementsByTagName('alarmid')[i].childNodes[0].nodeValue;
var alarmTime = xmlDocOut.getElementsByTagName('alarmtime')[i].childNodes[0].nodeValue;

...[i].childNodes[1].nodeValue を使用しようとすると、js はその行に「オブジェクトが必要です」というエラーをスローします。
私はもう試した

...[i].childNodes[1...4].nodeValue 

...[i].childNodes[0].childNodes[0].nodeValue.  

それでも何もない!

4

2 に答える 2

0

わかりました。2 番目のアラーム要素を取得するには、添え字に ...[i+1].childNodes[0].nodeValue を追加する必要がありました。

于 2012-07-31T15:54:45.057 に答える
0

xmlDocOut.getElementsByTagName('alarmid')[i].childNodes[1] が存在しません。すべての alarmId ノードには子ノードが 1 つしかありません。テキストノード。

例えば:

<alarmid>Outage</alarmid>

1 つの childNode があります。text == "Outage" の textNode。

于 2012-07-31T15:42:45.173 に答える