给出以下html片段:
<fieldset>
<legend>My Legend</legend>
<p>Some text</p>
Text to capture
</fieldset>
Run Code Online (Sandbox Code Playgroud)
是否有一个xpath表达式只返回'Text to capture'文本节点?
试
/fieldset/text()产生三个节点,而不仅仅是我需要的节点.
小智 7
假设你想要的是包含非空白文本的文本节点:
//fieldset/text()[normalize-space(.)]
Run Code Online (Sandbox Code Playgroud)
如果你想要的是最后一个文本节点,那么:
//fieldset/text()[last()]
Run Code Online (Sandbox Code Playgroud)
我建议你接受Steven D. Majewski的回答,但这里是解释(文字节点用方括号突出显示):
<fieldset>[
]<legend>My Legend</legend>[
]<p>Some text</p>[
Text to capture
]</fieldset>
Run Code Online (Sandbox Code Playgroud)
所以/fieldset/text()回归
"\n ""\n ""\n Text to capture\n"这就是您想要的原因/fieldset/text()[normalize-space()],并且您希望在使用前修剪结果.
另请注意,以上是简称/fieldset/text()[normalize-space(.) != ''].当normalize-space()返回非空字符串时,谓词求值为true,而空字符串求值为false.
| 归档时间: |
|
| 查看次数: |
1387 次 |
| 最近记录: |