在我的XML我想具体menuitems/menuitem
节点,这将是在其母公司在不同的任意位置(我不想硬编码位置选择)。如何获取一个节点的基础上的子元素的值的位置
是否有可能得到menuitem
节点的位置,该节点在其名称元素下具有正确的值,即menuitems/menuitem/name
。简而言之:选择具有name
值的menuitem
。
<one>
<menuitems>
<menuitem> <!-- I dont want this one -->
<name>
...
</name>
</menuitem>
<menuitem> <!-- I want this one at position 2 under <one> -->
<name>
... <!-- Based one correct name value here -->
</name>
</menuitem>
</menuitems>
</one>
<two>
<menuitems>
<menuitem> <!-- I want this one at position 1 under <two> -->
<name>
...
</name>
</menuitem>
</menuitems>
</two>
我可以很容易找到,如果一个menuitem
menuitems
下有正确的name
值。像这样:
<xsl:value-of select="current()/menuitems/menuitem/name = 'OhYes'"></xsl:value-of>
这将返回true
。但是,在哪个位置是该menuitem
amongs其他传回true
menuitem
?在同一父母和同一级别下选择。
我想避免这种情况:
<xsl:if test="current()/menuitems/menuitem[1]/name = 'OhYes'"> .. </xsl:if>
<xsl:if test="current()/menuitems/menuitem[2]/name = 'OhYes'"> .. </xsl:if>
请发布一个“工作”样本。即一个可以制作查询来展示你所要求的内容? – MattH 2013-04-05 13:42:42
@MattH现在开始。 – gorn 2013-04-05 14:17:12
你真的在找位置吗?或者你只是想根据它的'name'子元素内容选择一个'menuitem'元素?如果您只是使用像'// */menuitems/menuitem [name ='OhYes']'的路径,则可以选择项目元素。如果您确实想要输出位置,请使用例如' xsl:template>'。如果您想要完整的代码,请考虑向我们展示您希望使用XSLT 2.0创建的结果的确切类型(即html或xml或文本)和内容。 –
2013-04-05 14:36:17