1

XOMでドキュメントをクエリし、ノードを取得してから、このノードに別のノードをクエリしています。ただし、ノードのクエリは、このノードだけでなく、ドキュメント全体のクエリと同じように動作します。

XMLは次のようなものです。

<root>
  <someotherstuff>
    <DifferentNode>
      <Value1>different-value1</Value1>
    </DifferentNode>
    <Node>
      <Node>
        <Value1>value1</Value1>
        <Value2>value2</Value2>
      </Node>
      <Node>
        <Value1>value3</Value1>
        <Value2>value4</Value2>
      </Node>
      <!-- more Node's -->
    </Node>
  </someotherstuff>
</root>

そして私はこれをやっています:

Nodes nodes = document.query("//Node/Node", X_PATH_CONTEXT);
Node node = nodes.get(0);

Nodes innerNodes = node.query("/Value1");

そしてinnerNodes、0人の子供が含まれています。(スラッシュを追加)に変更"/Value1"すると"//Value1"、異なる値1が取得されるため、選択したノードではなく、ドキュメント全体をクエリしているように見えます。

XOMで特定のノードをクエリするにはどうすればよいですか?

4

1 に答える 1

4

クエリが単一のスラッシュで始まる場合、これは指定された名前のドキュメントルートノードを検索します。対照的に、2つのスラッシュは、指定された名前のすべての祖先を探すことを意味します。先頭のスラッシュを単に省略した場合、クエリは機能するはずです。

Nodes innerNodes = node.query("Value1");
于 2012-01-04T12:33:24.800 に答える