选择混合内容(文本和元素)子项的 XPath?

问题描述 投票:0回答:1

我需要一个 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 从元素中获取混合内容,而无需同时使用父元素标签?

xml xpath
1个回答
0
投票

<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()
包括元素和文本节点。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.