我想要这个输出(示例):
我想要这个
我正在处理 XML/TEI 文档,我需要使用 XPath 表达式,并且我希望将 div/u 中的文本作为输出,但没有节点元素内的文本,例如“desc”或“vocal>
来自代码(示例):
<div>
<u>
I want this but
*<anchor/><desc>I don't want this</desc><anchor/>
<anchor/>I don't want this also<anchor/>
<del type="">I don't want this too</del>*
I want this
</u>
</div>
我尝试使用(示例):
TEI//u[not(desc)]
但它排除了每个内部有
<u>
的 <desc>
。
这个 XPath,
//u/text()
将选择文档中所有
u
元素的所有文本节点子节点:
I want this but
I want this
如果您只想要第一个文本节点子节点,请使用
//u/text()[1]
请注意,这将选择文档中 all
u
元素的第一个文本节点。如果您只想要这些文本节点中的第一个,请使用
(//u/text())[1]
此 XPath 表达式将返回所有“u”标签的文本,不包括其中任何“desc”或“anchor”标签的文本:
TEI//u//text()[not(ancestor::desc) and not(ancestor::anchor)]