xml - 如何提取标签外的文本xml

标签 xml text xpath tags extraction

我想提取标签外的文本。例如,

<body>
    This is an exmaple
    <p>
        blablabla
    </p>
    <references>
        refer 1
        refer 2
    </references>
</body>

我只想获取文本“This is an example”而其他标签(p 或引用)中没有文本。我尝试了几种方法但不起作用。任何人都可以帮忙吗?非常感谢。

最佳答案

您必须将标签内的文本视为节点。使用测试节点 text() 检索文本节点。例子。鉴于:

<body>
    This is an exmaple
    <p>
    blablabla
    <\p>
    <references>
        refer 1
        refer 2
    <\references>
    another example
<\body>

XPath:

"/body/text()"

将检索 body 的所有子文本节点,例如“This is an exmaple”和“another example”,同时:

"/body/text()[1]"

将只检索第一个,“This is an exmaple”。如果您想要所有后代文本节点,您可以使用:

"/body//text()"

或者,您希望所有文本节点都位于第一个 p:

"/body/p[1]//text()"

关于xml - 如何提取标签外的文本xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6871273/

相关文章:

c# - 在 XPath Binding WPF 中转义单引号

java - 使用 XPath 搜索时,HtmlElements 在 block 中找到 3 个元素,而不是仅 1 个

xml - 使用 r httr 从谷歌搜索中抓取 url

java - Files.readAllLines 跳过最后一行

java打印带有*的正方形/框架的文本

java - 如何在位图 Java 中创建文本周围的轮廓

xml - 属性不等于或不存在的元素的 XPath

c# - XML 无法将 xmlns 写入子节点

javascript - JS中解析XML节点

python - 检查字符串是否仅包含空格