0

私はxsltを学んでいます。いくつかの xslt コードを理解しようとしていますが、次のコード行の意味がわかりません:

<xsl:variable name="Product" select="document('ProductList.xml')/node()[1]/node()[2]/node()[2]/node()[2]"/>

変数が「$Product」になることは理解できますが、ドキュメント関数の後の select 属性、「/」、および nodes()[] の値を理解できません。私は c# と Java のコーディングの知識を持っていますが、このタイプの構文には慣れていません。これらの「/」が選択の値で何を意味するのか知りたいです。

4

2 に答える 2

5

このselect属性は、変数の値が XPath 式によって決定される必要があることを示します。

document('ProductList.xml')、「ProductList.xml」という名前のファイルをロードして、XPath 選択を実行します。

この/node()[1]/node()[2]/node()[2]/node()[2]部分は、1 番目の要素の 2 番目の子の 2 番目の子の 2 番目の子を選択する必要があることを意味します。つまり、ProductList.xml が次のようになっているとします。

<a>              <!-- /node()[1] -->
  <b>            <!-- /node()[1]/node()[1] -->
    <c />        <!-- /node()[1]/node()[1]/node()[1] -->
    <d />        <!-- /node()[1]/node()[1] -->
  </b>
  <e>            <!-- /node()[1]/node()[2] -->
     <f />       <!-- /node()[1]/node()[2]/node()[1] -->
     <g>         <!-- /node()[1]/node()[2]/node()[2] -->
        <h />    <!-- /node()[1]/node()[2]/node()[2]/node()[1] -->
        <i />    <!-- /node()[1]/node()[2]/node()[2]/node()[2] -->
     </g>
  </e>
</a>

次に、その XPath<i>は、 の 2 番目の子である ノードを選択します。これは の 2 番目の子であり<g><e>の 2 番目の子で<a>あり、最初の (そして唯一の) ルート要素です。

于 2013-01-23T11:13:18.907 に答える
0

逆に読む:-

node()[2],       node()[2],       node()[2],       node()[1],      document('ProductList.xml')           
second child of, second child of, second child of, first child of, ProductList.xml document
于 2013-01-23T11:17:37.687 に答える