XPath查找没有id或class的元素
如何获得所有tr元素没有id属性?
<tr id="name">...</tr> <tr>...</tr> <tr>...</tr>
谢谢
非常简单:
//tr[not(@id) and not(@class)]
这会给你所有缺乏id
和class
属性的tr
元素。 如果你想要所有tr
元素都缺less其中的一个,可以使用or
替代:
//tr[not(@id) or not(@class)]
当以这种方式使用属性和元素时,如果属性或元素具有值,则将其视为真。 如果缺失,则视为错误。
你可以尝试//tr[not(@id)]?
如果您正在查找具有 class a
但没有 class b
的元素, 则可以执行以下操作。
//*[contains(@class, 'a') and not(contains(@class, 'b'))]
或者如果你想确保不匹配部分。
//*[contains(concat(' ', normalize-space(@class), ' '), ' some-class ') and not(contains(concat(' ', normalize-space(@class), ' '), ' another-class '))]
if (elm.hasAttribute('id')) { //if id - implement here } else if (elm.hasAttribute('class')) { //if class - implement here } else { for (i = 1, sib = elm.previousSibling; sib; sib = sib.previousSibling) { if (sib.localName == elm.localName) i++; }; segs.unshift(elm.localName.toLowerCase() + '[' + i + ']'); }