xpath를 사용하여 페이지에서 HTML5 마이크로 데이터를 추출하려고합니다. 필자는 본질적으로 "itemprop = name 속성을 가진 중첩 노드를 찾으십시오. 다른 namescope 요소 안에 깊이 중첩되지 않습니다". 다음 예제를 통해 제품의 이름 (신발)을 찾으려하지만 브랜드 이름 (Nike)을 원하지 않습니다.일치하는 조상이없는 요소를 찾기위한 Xpath 표현
<div itemscope itemtype="http://schema.org/Product>
<div itemscope itemtype="http://schema.org/Brand">
<div itemprop="name">Nike</div> <!-- don't want this -->
</div>
<div itemprop="name">shoes</div> <!-- do want this -->
</div>
난 쉽게 // * [@에는 itemprop = 이름] 같은 것을 사용하여에는 itemprop = name 요소를 찾을 수 있지만이 또한 브랜드 이름을 끌어 것입니다. Btw 예제에 표시된 요소는 다른 태그 안에 중첩 될 수 있으므로 "직접적인 부모에게는 itemscope 속성이 없습니다"라고 말할 수는 없습니다. 사용할 수있는 조상과 관련있을 수도 있지만 잘 모르겠습니다. 충분히 xpath. 어떤 아이디어?
이 예에서는'itemscope' 안에'shoes_is_ '가 있습니다. 그래서 명확히하기 위해, 가장 조상의 itemscope가있는 이름을 원하지만 둘 이상의 이름을 원하십니까? –
아니면'itemscope' 요소 X가 주어진다면, X 내부에있는 모든 이름을 추출하지만 다른 어떤 'itemscope'에도 포함되어 있지 않다는 것을 의미합니까? –
저는 python을 통해 libxml2 (http://xmlsoft.org/)를 사용하고 있습니다. 원래의 질문에 대한 답변을 얻으려면 두 시나리오 중 어느 것이 든이 컨텍스트에서 충분하지만 두 번째 시나리오가 아마도 더 가깝습니다. –