0

このタイプのxmlファイルがあります

 <a Text="">
   <b>
     <c Text=""/>
     < c Text=""/>
   </b>
    <b>
          <c/>
    </b>
 </a>

だから、私は次のような出力が必要です

     a
        c
        c

これを書くための xpath 式を教えてください。b の出現を無視する必要があります。

4

1 に答える 1

0

aノードとbノードを選択したい場合は、次の式を使用できます。

/a | /a/b/c

これにより、すべての a ノードと (ユニオン) すべての c ノードが選択されます。ドキュメント内の指定されたレベルでのみ選択されることに注意してください。次のようなものに行くこともできます:

//a | //c

このクエリの目的について、もう少し情報を提供していただけないでしょうか。

次のように XQuery を使用することもできます。

<div class="breadcrumb">
{
for $d in doc("test.xml")/a/b/c return
<a href="somepage.php?id={fn:data($d/@Text)}">{fn:data($d/@Text)}</a>
}
</div>

次の入力で

<a>
  <b>
    <c Text="Cat1" />
    <c Text="Cat2" />
    <c Text="Cat3" />
  </b>
  <b>
    <c Text="Cat4" />
    <c Text="Cat5" />
  </b>
</a>

次の出力が得られます。

<div class="breadcrumb">
    <a href="somepage.php?id=Cat1">Cat1</a>
    <a href="somepage.php?id=Cat2">Cat2</a>
    <a href="somepage.php?id=Cat3">Cat3</a>
    <a href="somepage.php?id=Cat4">Cat4</a>
    <a href="somepage.php?id=Cat5">Cat5</a>
</div>
于 2012-05-09T14:55:19.617 に答える