如何在标签xml之外提取文本

Jun*_*Hou 5 xml tags xpath text extraction

我想在标签外提取文字.例如,

<body>
    This is an exmaple
    <p>
        blablabla
    </p>
    <references>
        refer 1
        refer 2
    </references>
</body>
Run Code Online (Sandbox Code Playgroud)

我想获得文本"这是一个例子",只有其他标签(p或参考)中没有文字.我尝试了几种方法但不起作用.Any1可以帮忙吗?十分感谢.

Emi*_*ggi 8

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

<body>
    This is an exmaple
    <p>
    blablabla
    <\p>
    <references>
        refer 1
        refer 2
    <\references>
    another example
<\body>
Run Code Online (Sandbox Code Playgroud)

XPath的:

"/body/text()"
Run Code Online (Sandbox Code Playgroud)

将检索所有子文本节点body,如"这是一个例子"和"另一个例子",同时:

"/body/text()[1]"
Run Code Online (Sandbox Code Playgroud)

将只检索第一个,"这是一个例子".如果您想要所有后代文本节点,您可以使用:

"/body//text()"
Run Code Online (Sandbox Code Playgroud)

或者,你想要第一个p内的所有文本节点:

"/body/p[1]//text()"
Run Code Online (Sandbox Code Playgroud)