我正在学习xslt.我试图了解一些xslt代码,但我没有得到以下代码行的含义:
<xsl:variable name="Product" select="document('ProductList.xml')/node()[1]/node()[2]/node()[2]/node()[2]"/>
Run Code Online (Sandbox Code Playgroud)
我可以理解变量将是"$ Product",但是我无法理解文档函数之后select属性的值,'/'和nodes()[].我有c#和java的编码知识,我不熟悉这种语法.我想知道这些'/'在选择值中意味着什么.
该select属性表示变量的值应由XPath表达式确定.
该document('ProductList.xml')文件加载名称为"ProductList.xml"对其执行的XPath选择.
该/node()[1]/node()[2]/node()[2]/node()[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>
Run Code Online (Sandbox Code Playgroud)
然后该XPath的将选择<i>节点,这是第二个孩子<g>,这是第二个孩子<e>,这是第二个孩子<a>,这是第一(只)根元素.