我需要一个 XPath 表达式,允许我从一个元素中选择文本和 XML 标记,而不包括父元素标签。使用下面的示例,我需要从没有
<title>
标签的<fig>
上下文中选择<title>
的内容。
<fig>
<title>An H<sub>2</sub>O molecule</title>
<image href="h2oMolecule.jpg"/>
<fig>
换句话说,我需要能够捕捉到这个:
An H<sub>2</sub>O molecule
从
<fig>
我试过child::title/*
、child::title/node()
和child::title/*[text() or node()]
,但都返回<sub>2</sub>
.
我也试过
child::title/text()
但我得到“An H”。
有没有一种方法可以使用 XPath 从元素中获取混合内容,而无需同时使用父元素标签?
从
我试过<fig>
、child::title/*
和child::title/node()
,但都返回child::title/*[text() or node()]
.<sub>2</sub>
不,这对
child::title/node()
来说不是真的。你犯了一些其他错误。这对于 *
XPaths 是正确的,因为 *
表示任何元素,而 <sub>2</sub>
是 fig
的唯一子元素。
为了使您的 XML 更正为格式正确,
<?xml version="1.0" encoding="utf-8" ?>
<fig>
<title>An H<sub>2</sub>O molecule</title>
<image href="h2oMolecule.jpg"/>
</fig>
这个 XPath,
/fig/title/node()
选择这些节点,
An H<sub>2</sub>O molecule
应要求,因为
node()
包括元素和文本节点。