¿Cómo puedo obtener todos los elementos tr sin el atributo id?XPath para encontrar elementos que no tienen una identificación o clase
<tr id="name">...</tr>
<tr>...</tr>
<tr>...</tr>
Gracias
¿Cómo puedo obtener todos los elementos tr sin el atributo id?XPath para encontrar elementos que no tienen una identificación o clase
<tr id="name">...</tr>
<tr>...</tr>
<tr>...</tr>
Gracias
Bastante sencillo:
//tr[not(@id) and not(@class)]
que le dará todos los elementos que carecen de ambos tr
id
y class
atributos. Si desea que todos tr
elementos que carecen de uno de los dos, utilizar or
en lugar de and
:
//tr[not(@id) or not(@class)]
Cuando los atributos y los elementos se utilizan de esta manera, si el atributo o elemento tiene un valor se trata como si es verdad . Si falta, se trata como si fuera falso.
Se puede tratar //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 + ']');
}
Si lo que buscas es un elemento que tiene clase a
pero no lo hace tienen clase b
, puede hacer lo siguiente.
//*[contains(@class, 'a') and not(contains(@class, 'b'))]
O si usted quiere estar seguro de no coincidencia parcial.
//*[contains(concat(' ', normalize-space(@class), ' '), ' some-class ') and not(contains(concat(' ', normalize-space(@class), ' '), ' another-class '))]
¿El 'o' ejemplo de trabajo. Dado que es un negativo en contra? –