我有一个关于XPath和HTML的p元素的问题。假设我遇到了一个看起来像这样的HTML结构:
<div id="this-is-a-text">
This is text segment 1.
<p>This is text segment 2.</p>
this is text segment 3.
<div id="this-is-not-part-of-the-text">This doesn't belong to the text.</div>
This is text segment 4.
</div>
我想知道解析所有文本段的正确方法是什么,无论它们是否在p元素内? (注意:元素的顺序是随机的。)
我不明白为什么 // div [@ id =“this-is-a-text”] / p 似乎可以完成这项工作(而不仅仅是返回文本段3 ),而 // div [@ id =“this-is-a-text”] / text()根本不会返回任何结果。
任何人都可以帮我理解这个吗?
谢谢!
鲍勃
答案 0 :(得分:1)
正如Martin Honnen所提到的,查询//div[@id="this-is-a-text"]/text()
应该返回三个文本段的集合:
"\nThis is text segment 1.\n",
"\nthis is text segment 3.\n",
"\nThis is text segment 4.\n"
如果我理解你的问题,你需要查询
//div[@id="this-is-a-text"]//text()
这应该返回set:
"\nThis is text segment 1.\n",
"This is text segment 2.",
"\nthis is text segment 3.\n",
"This doesn't belong to the text.",
"\nThis is text segment 4.\n"