0

XMLオブジェクトがあり、子ノードがいくつかある可能性のあるノードでテキスト値を返したいと思っています。

  <binding name="s"><bnode>b1fff4d00000000fe</bnode></binding>
  <binding name="p"><uri>http://cidoc-crm.org/P1F.is_identified_by</uri></binding>
  <binding name="zebra"><literal>copper</literal></binding>

上記の場合、バインディングの名前の値を指定できれば、各ノードのテキストを返したいと思っています。

擬似コード:バインディング名の値== "s";

私はこれを試しました

x[i].getElementsByTagName("binding")[0].childNodes[0].nodeValue

したがって、この場合はbnodeの子ノード名は重要ではありません。

私はそれが明確であることを願っています

ありがとう。

4

2 に答える 2

2

テキストコンテンツを取得する最も簡単な方法は次のとおりです。

x[i].getElementsByTagName("binding")[0].textContent;

ただし、textContentIE <9ではサポートされていないため、これらのブラウザのテキストノードに移動する必要があります。

x[i].getElementsByTagName("binding")[0].firstChild.firstChild.data;

デモ: http: //jsfiddle.net/p2SrZ/

于 2012-08-03T09:49:00.223 に答える
1

nodeValue常に結果となる要素のを取得しようとしていnullます。[1] 必要なのnodeValueは、含まれているテキストノードのです。したがって、残念ながら、このステートメントに別の層を追加する必要があり、ステートメントは次のようになります。

x[i].getElementsByTagName("binding")[0].childNodes[0].childNodes[0].nodeValue;

これにより、内部要素のテキストノード値がプルされます。

[1]偽の引用は、リンクをクリックするだけです。

于 2012-08-03T09:52:14.393 に答える