xpath获取包含文本的节点

Vjy*_*Vjy 40 xml xpath

我试图在'/ doc/story/content'下搜索包含文本'Yahoo'的节点,它返回'content'节点,但我需要包含'Yahoo'或它的父节点的精确文本节点

<doc>
    <story>
        <content id="201009281450332423">
            <ul>MSW NYNES NYPG1 DILMA</ul>
            <p> <k> Yahoo, made </k> it nice </p>
            <p>
               <author>-v-</author>
            </p>
        </content>
    </story>
</doc>
Run Code Online (Sandbox Code Playgroud)

Xpath的: "/doc/story/content[contains(., 'Yahoo')]"

Rav*_*ish 49

由于您只需要包含文本Yahoo的所有textNodes ,请使用以下XPath.

//text()[contains(., 'Yahoo')]
Run Code Online (Sandbox Code Playgroud)

这应该返回所有包含Yahoo(区分大小写)的textNodes .

  • 我认为有人因为过于笼统而投票.+1 (2认同)

Jon*_*Jon 41

您的XML格式错误.</content></doc></story>应该是</content></story></doc>.

除此之外,你想要的XPath是

/doc/story/content//*[contains(., 'Yahoo')]
Run Code Online (Sandbox Code Playgroud)

(选择任何后代<content>包含文本"Yahoo" - 这将选择<p>)