ID 또는 클래스가없는 요소를 찾기위한 XPath


88

id 속성이없는 모든 tr 요소를 어떻게 얻을 수 있습니까?

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

감사

답변:


147

꽤 직설적 인:

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

즉, 모든 줄 것 tr모두 부족한 요소 idclass속성을. tr둘 중 하나가없는 모든 요소 를 원하면 or대신 사용하십시오 and.

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

이러한 방식으로 속성 및 요소를 사용할 때 속성 또는 요소에 값이 있으면 true 인 것처럼 처리됩니다. 누락 된 경우 거짓 인 것처럼 처리됩니다.


22

당신이 요소를 찾고 있다면 클래스를 a하지만 하지 않는 클래스가 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 '))]


-4
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 + ']'); 
    }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.