我有以下html
<ul id="ref_1876" data-typeid="n">
<li style="margin-left: -18px">/li>
<li style="margin-left: -10px"></li>
<li style="margin-left: 16px"></li>
<li style="margin-left: 17px"></li>
<li style="margin-left: 18px"></li>
<li style="margin-left: 14px"></li>
<li style="margin-left: 14px"></li>
<li style="margin-left: 14px"></li>
<li style="margin-left: 14px"></li>
</ul>
我希望得到保证金左边的所有“li”与XPATH一致。
在这个阶段,我有以下代码,其中包含所有“li”
('//ul[contains(@data-typeid, "n")]/li')
答案 0 :(得分:2)
如果您使用的是Xpath 2.0,则可以将 matches 函数与正则表达式一起使用,例如:
... li[matches(@style, "margin\-left\: [0-9]+px")]
使用Xpath 1.0时没有matches
,但也许您可以使用:
... li[contains(@style, "margin-left:") and not(contains(@style, "margin-left: -"))]
答案 1 :(得分:1)
希望有人有更好的答案。以下XPath完成了这项工作,但它希望属性margin-left:
中始终存在px
和style
:
//ul[contains(@data-typeid, "n")]/li[number(substring-before(substring-after(@style, 'margin-left:'), 'px')) > 0]