我有一些结构如下:
<h1><span id="One"></span><span id="Yellow">One</span></h1>
<h2><span id="door"></span><span id="White">door</span></h2>
<p>door</p>
<ul>
<li>Intel CPU</li>
</ul>
<h2><span id="door"></span><span id="White">door</span></h2>
<p>AMD CPU</p>
<ul>
<li>Elbrus CPU</li>
</ul>
<h1><span id="One more"></span><span id="Yellow">One more</span></h1>
<h2><span id="door"></span><span id="White">door</span></h2>
<p>door</p>
<ul>
<li>Intel II CPU</li>
</ul>
<h2><span id="door"></span><span id="White">door</span></h2>
<p>AMD II CPU</p>
<ul>
<li>Elbrus II CPU</li>
</ul>
<h1><span id="Something></span></span><span id="Not Yellow">Something</span></h1>
<h2><span id="door"></span><span id="White">door</span></h2>
<p>door</p>
<ul>
<li>Intel III CPU</li>
</ul>
<h2><span id="door"></span><span id="White">door</span></h2>
<p>AMD III CPU</p>
<ul>
<li>Elbrus III CPU</li>
</ul>
我怎样才能获得包含&#34;英特尔&#34;,&#34; AMD&#34;,&#34; ELbrus&#34;, h1 后的字符串< strong> span ,包含 ID =&#34;一个*&#34; ,但不包含 h1 span ,不包含 ID =&#34;一个*&#34; (仅在他面前)。
编辑:
如何才能获得以下字符串:
Intel CPU
AMD CPU
Elbrus CPU
Intel II CPU
AMD II CPU
Elbrus II CPU
?
我已经使用过:
// H1 /跨度[否(含有(&#34;一个&#34)。)] /前述:: P [含有(文本()&#34; AMD&#34)] | // H1 /跨度[否(含有(&#34;一个&#34;))] /前述:: p [共ntains(文本()&#34;英特尔&#34; )] | // H1 /跨度[不(共ntains(&#34;一个&#34;))] / PR eceding :: p [含有(文本()&#34;厄尔布鲁士&# 34)] | // H1 /跨度[否(含有(&#34;一个&#34;))] / precedin克::的Li [含有(文本()&#34 ;英特尔&#34)] | // H1 /温泉N [否(含有(&#34;在E&#34;))] /前述::的Li [含有(文本(),& #34; AMD&#34)] | // H1 /跨度[不(共ntains(&#34;一个&#34;))] / PR eceding ::的Li [含有(文本( )&#34;厄尔布鲁士&#34)]
但它不起作用。
答案 0 :(得分:2)
假设在您选择的文字示例中Elbrus III CPU
确实应该是Elbrus II CPU
,这应该有用......
//text()[(contains(.,'Intel') or contains(.,'AMD') or contains(.,'Elbrus')) and preceding::h1[1][span[contains(@id,'One')]]]