Làm cách nào để có được tất cả các phần tử tr không có thuộc tính id?XPath để tìm các phần tử không có id hoặc lớp
<tr id="name">...</tr>
<tr>...</tr>
<tr>...</tr>
Cảm ơn
Làm cách nào để có được tất cả các phần tử tr không có thuộc tính id?XPath để tìm các phần tử không có id hoặc lớp
<tr id="name">...</tr>
<tr>...</tr>
<tr>...</tr>
Cảm ơn
Khá đơn giản:
//tr[not(@id) and not(@class)]
Điều đó sẽ cung cấp cho bạn tất cả các yếu tố tr
thiếu cả id
và class
thuộc tính. Nếu bạn muốn tất cả tr
yếu tố thiếu một trong hai, sử dụng or
thay vì and
:
//tr[not(@id) or not(@class)]
Khi các thuộc tính và các yếu tố được sử dụng theo cách này, nếu thuộc tính hoặc yếu tố có giá trị nó được xử lý như thể đó là sự thật . Nếu nó bị thiếu, nó được coi như là sai.
Bạn có thể thử //tr[not(@id)]?
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 + ']');
}
Nếu bạn đang tìm kiếm một yếu tố mà có lớp a
nhưng không có lớp b
, bạn có thể làm như sau.
//*[contains(@class, 'a') and not(contains(@class, 'b'))]
Hoặc nếu bạn muốn chắc chắn không phù hợp với một phần.
//*[contains(concat(' ', normalize-space(@class), ' '), ' some-class ') and not(contains(concat(' ', normalize-space(@class), ' '), ' another-class '))]
Làm việc 'hoặc' ví dụ. Kể từ khi một tiêu cực chống lại? –