与此问题类似的问题:
XPath: select a node based on another node?
目的是基于同级节点的值来选择一个节点,在这种情况下,基于页面类型节点的值来选择页面标题节点。
xpaths:
/dsQueryResponse/Rows/Row/@Title
/dsQueryResponse/Rows/Row/@Pagetype
/dsQueryResponse/Rows/Row/@Pagetitle
此xsl不返回任何内容:
<xsl:value-of select= "/dsQueryResponse/Rows/Row[Pagetype='Parent']/@Pagetitle" />
样本xml:
<dsQueryResponse>
<Rows>
<Row>
<Title>1</Title>
<Pagetype>Parent</Pagetype>
<Pagetitle>title of page</Pagetitle>
</Row>
</Rows>
</dsQueryResponse>
目的是如果Pagetitle的值具有“父类”的Pagetype值,则返回它们。
最佳答案
@符号表示节点的属性。因此,如果您想返回Pagetitle属性等于Parent的属性Pagetitle的值,它应该显示为:
<xsl:value-of select= "/dsQueryResponse/Rows/Row[@Pagetype='Parent']/@Pagetitle" />
我用来测试XPATH的有用资源是http://www.xmlme.com/XpathTool.aspx