如何在不使用 foreach 的情况下使用 xslt,X 位置的节点值
<items>
<item1>x</item1>
<item2>x</item2>
<item3>x</item3>
</items>
这是从编程意义上解释的:
<xsl:value-of select="Items/Item[2]"/>
===================================================
只是为了一点扩展问题,在下面的 xml 中:
<items>
<about>xyz</about>
<item1>
<title>t1</title>
<body>b1</body>
</item1>
<item2>
<title>t2</title>
<body>b2</body>
</item2>
<item3>
<title>3</title>
<body>3</body>
</item3>
</items>
我如何选择第二个项目的标题。
回答扩展问题。如果选择所需元素的节点集,则可以使用位置值:
<xsl:value-of select="(items//title)[2]"/>
or:
<xsl:value-of select="(items/*/title)[2]"/>
请注意在按位置选择之前返回所需节点集所需的括号的用法。
您可以使用所谓的“编程意义上的”。然而你需要*
由于子元素的名称未知:
<xsl:value-of select="items/*[2]"/>
请注意,XSLT 中的节点集are not零基础。在上面的方式中,您选择了第二个item,不是第三个.
你确实需要position()
当您想要将当前位置与数字进行比较时,如下所示:
<xsl:value-of select="items/*[position()>2]"/>
选择全部item位置大于 2。其他情况position()
必不可少的是当位置值是类型变量时string:
<xsl:variable name="pos" select="'2'"/>
<xsl:value-of select="items/*[position()=$pos]"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)