【发布时间】:2013-07-09 15:12:46
【问题描述】:
我正在使用以下查询:
//*[contains(concat(" ", normalize-space(@class), " "), " sub-category-wrap ")][1]/dl/dt
这应该选择第一个.sub-category-wrap 并返回它的/dl/dt 内容。理想情况下,这将是:
YarnMice
由于某种原因,它返回:
YarnMiceFast TiresFancy Paint
因此,出于某种原因,它从两个.clear-wrap 元素中的dt 中获取内容。我似乎无法从第 n 个.sub-category-wrap 中选择dt。
注意: xpath 查询中的[1] 选择器实际上是我的代码中的一个变量,因此请在您提供的解决方案中记住这一点。
<div class="clear-wrap">
<div class="sub-category-wrap">
<h3>Cats</h3>
<dl>
<dt>Yarn</dt>
<dd><!-- Content --> </dd>
<dt>Mice</dt>
<dd><!-- Content --></dd>
</dl>
</div>
<div class="sub-category-wrap">
<h3>Dogs</h3>
<dl>
<dt>Kibbles</dt>
<dd><!-- Content --> </dd>
<dt>Drool</dt>
<dd><!-- Content --></dd>
</dl>
</div>
</div>
<div class="clear-wrap">
<div class="sub-category-wrap">
<h3>Cars</h3>
<dl>
<dt>Fast Tires</dt>
<dd><!-- Content --> </dd>
<dt>Fancy Paint</dt>
<dd><!-- Content --></dd>
</dl>
</div>
<div class="sub-category-wrap">
<h3>Trucks</h3>
<dl>
<dt>Mud Tires</dt>
<dd><!-- Content --> </dd>
<dt>Loud Pipes</dt>
<dd><!-- Content --></dd>
</dl>
</div>
</div>
【问题讨论】:
-
澄清一下,
//*[contains(..)][2]和//*[contains(..)][3]的结果应该是什么?