XPath查找没有id或class的元素

如何获得所有tr元素没有id属性?

<tr id="name">...</tr> <tr>...</tr> <tr>...</tr> 

谢谢

非常简单:

 //tr[not(@id) and not(@class)] 

这会给你所有缺乏idclass属性的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 + ']'); }