我试着在这里到处看,但似乎我无法弄清楚为什么我的输出不起作用。 这是代码:
<h2> Title1 </h2>
"
Text 1"
<br>
"
Text 2"
<br>
"
Text 3
"
<h2> Title2 </h2>
我想提取文本1文本2文本3,但使用以下Xpath,它不起作用...
text()[preceding-sibling::h2[normalize-space()='Title1']]
你能帮我吗?
提前致谢!
答案 0 :(得分:0)
在您的情况下,您可以使用
<div id="list">
<div class="list-item">A</div>
<div class="list-item">B</div>
<div class="list-item">C</div>
<div class="list-item">D</div>
<div class="list-item">E</div>
<div class="list-item">F</div>
<div class="list-item">G</div>
<div class="list-item">H</div>
<div class="list-item">I</div>
<div class="list-item">J</div>
</div>
但它仅适用于当前提供的//h2[normalize-space(text())="Title1"]/following-sibling::text()[position()<4]
示例:如果可能有更多或更少的HTML
部分 - 它将与预期的文字内容不匹配...
答案 1 :(得分:0)
这是一种可能的方式:
//h2[normalize-space() = 'Title1']
/following-sibling::text()[
following-sibling::h2[1][normalize-space() = 'Title2']
]
<强> demo
强>
简要说明:
//h2[normalize-space() = 'Title1']
:查找h1
元素,其中whitespaces normalization之后的文字内容等于&#39; Title1&#39; /following-sibling::text()
:从这样的h1
元素中,找到以下所有兄弟文本节点... following-sibling::h2[1][normalize-space() = 'Title2']
:...其中最近跟随兄弟h2
内容等于&#39; Title2&#39;