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 + ']'); }