与此问题类似的问题:
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

10-08 00:05