如何使用 Nokigiri 在 h4 标签跳过它们之间的任何其他标签后选择第一个 ul 标签?
How to pick first ul tag after h4 tag skipping any other tag between them, with Nokigiri?
我正在尝试获取标签 h4 之后的第一个 ul 标签并跳过 div 标签:
<h4>
<a>
"Q1. some text"
</a>
</h4>
<ul>
<li>answer</li>
<li>answer</li>
<li>answer</li>
</ul>
<h4>
<a>
"Q2. Some text"
</a>
</h4>
<ul>
<li>answer</li>
<li>answer</li>
<li>answer</li>
</ul>
<h4>
<a>
"Q2. Some text"
</a>
</h4>
<div>WITH OTHER INFO THAT i DON'T WANT</div>
<ul>
<li>answer</li>
<li>answer</li>
<li>answer</li>
</ul>
<h4>
<a>
"Q2. Some text"
</a>
</h4>
<div>WITH OTHER INFO THAT i DON'T WANT</div>
<ul>
<li>answer</li>
</ul>
<ul>
<li>DONT NEED THIS</li>
</ul>
<ul>
<li>DONT NEED THIS</li>
</ul>
这段代码大部分都是这样,所以我只需要在 h4 之后选择第一个 ul 标签,并跳过带有 nokigiri 和 ruby.[=12 的 div 标签=]
require 'nokogiri'
doc = Nokogiri.HTML(DATA)
您想使用 following-sibling
或 following
轴,并指定第一个匹配的 ul
:
doc.xpath('//h4/following-sibling::ul[1]')
我正在尝试获取标签 h4 之后的第一个 ul 标签并跳过 div 标签:
<h4>
<a>
"Q1. some text"
</a>
</h4>
<ul>
<li>answer</li>
<li>answer</li>
<li>answer</li>
</ul>
<h4>
<a>
"Q2. Some text"
</a>
</h4>
<ul>
<li>answer</li>
<li>answer</li>
<li>answer</li>
</ul>
<h4>
<a>
"Q2. Some text"
</a>
</h4>
<div>WITH OTHER INFO THAT i DON'T WANT</div>
<ul>
<li>answer</li>
<li>answer</li>
<li>answer</li>
</ul>
<h4>
<a>
"Q2. Some text"
</a>
</h4>
<div>WITH OTHER INFO THAT i DON'T WANT</div>
<ul>
<li>answer</li>
</ul>
<ul>
<li>DONT NEED THIS</li>
</ul>
<ul>
<li>DONT NEED THIS</li>
</ul>
这段代码大部分都是这样,所以我只需要在 h4 之后选择第一个 ul 标签,并跳过带有 nokigiri 和 ruby.[=12 的 div 标签=]
require 'nokogiri'
doc = Nokogiri.HTML(DATA)
您想使用 following-sibling
或 following
轴,并指定第一个匹配的 ul
:
doc.xpath('//h4/following-sibling::ul[1]')