我的xpath功能有问题
我想得到" First Row"和#34;第四行"只是,但我希望得到它具有声明的逻辑,
第一个声明是我想要使用具有类" row1"的节点。 其次,我想忽略所有具有类" excludeRow"
的节点我没有尝试过(开始)而没有(包含(@class," excludeRow"))功能,但仍然无法得到我想要的东西。
这是我的例子
<tr><td>"Header"</td></tr>
<tr class="row1"><td>"First Row"</td><tr>
<tr class="excludeRow1"><td>"Second Row"</td></tr>
<tr class="excludeRow2"><td>"Third Row"</td></tr>
<tr><td>"Fourth Row"</td></tr>
<tr class="excludeRow3"><td>"Fifth Row"</td></tr>
这是我最近的代码,希望有人可以纠正或解决这个问题:D
此代码没有错误,但结果不是我预期的
谢谢大家,问候! :d
答案 0 :(得分:0)
首先,请注意您使用的是无效的html,因为您的第二行未正确关闭。但如果它被正确关闭,以下陈述应该有效:
//tr[@class="row1"]
//tr[not(contains(@class, "excludeRow")) and not(@class="row1") and not(position()=1)]
第一个语句只选择所有类,其等级为row1
。
第二个语句在其class属性中选择不包含excludeRow的所有tr,另外还会排除在第一个语句中选择的行。最后要排除标题行,它会排除第一个元素。
答案 1 :(得分:0)
您应该使用or
选择 具有class
属性等于'row1'或没有{的行{1}}以'excludeRow'开头的属性。但是,这将包括“标题”行。如果您想跳过“标题”,请添加另一个条件以首先跳过class
:
tr
上面的XPath应该返回两个预期的行“First Row”和“Fourth Row”(参见xpathtester中的演示)