什么是XPath的XML?

时间:2017-07-11 11:01:15

标签: xml xpath

我有以下XML。什么是XPath for"这里的一些文字" ?

<a:a>
    <a:b>
        <a:c>
            <x:d>
                <y id="z">
                    <myText> some text here </myText>
                </y>
            <x:d>
        </a:c>
    </a:b>
</a:a>

我需要确切的XPath直到&#34;这里的一些文字&#34;。

2 个答案:

答案 0 :(得分:2)

要选择包含“some text here here”的文本节点,请使用以下XPath:

a:a/a:b/a:c/x:d/y[@id = 'z']/myText/text()

此处文本仍包含前导和尾随空格。要摆脱它们,请将XPath函数normalize-space()应用于表达式:

normalize-space(a:a/a:b/a:c/x:d/y[@id = 'z']/myText/text())

还要确保正确设置名称空间。为了测试,我将XML示例的第一个标记更改为

<a:a xmlns:a="http://a.com" xmlns:x="http://x.com">
  ...
</a:a>

答案 1 :(得分:1)

您可以使用以下xPath查询://myText/text()

作为奖励,使用XSLT,您可以将模板<xsl:template match="myText">value-of选择器结合使用:

<xsl:template match="myText">
    <xsl:value-of select="."/>
</xsl:template>