2

サンプル XML。

<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:55:29</alarmtime>
</alarm>
</node>
<node>
<nodeid>67</nodeid>
<account_no>274192</account_no>
<address1>1618 CHIPINQUE DR</address1>
<serial_no>112199521</serial_no>
<x_lat>25.95286395000</x_lat>
<y_lon>-97.49323166000</y_lon>
<alarm>
  <alarmid>Outage</alarmid>
  <alarmtime>2012-07-30T14:46:29</alarmtime>
</alarm>
</node>
</ROOT>

数を数えたい

<alarm>

最初のノードと 2 番目のノードの要素。forループでこれをやろうとしました...

xmlDoc.getElementByTagName('alarm')[i].length;

これにより、xml ファイル内のすべての「アラーム」タグが得られます。私が欲しいのは、現在の「ノード」アラーム要素だけです。だからここに私が欲しいものがあります、私は最初に2があることを教えてほしいです

<alarm>

タグと 2 番目の「ノード」には 1

<alarm>

jQueryではなくjavascriptのみ。

4

1 に答える 1

4

これを試して:

var nodes = xmlDoc.getElementsByTagName('node'), //Get the <node> tags
    amountOfNodes = nodes.length

for(var i = 0; i < amountOfNodes; i++) { //loop thru the nodes

   console.log(nodes[i].getElementsByTagName('alarm').length); //get the amount of <alarm> tags

}

編集 これが実際の例です: Fiddle

それがあなたの問題を解決するかどうか教えてください:)

于 2012-07-31T19:53:23.897 に答える