HTML 컨텐트를 XML 문서로 저장하고 있습니다 (HTML Agility Pack 사용). 일부 XPath는 알고 있지만 필요로하는 정확한 콘텐츠는 0으로 만들 수 없습니다.
아래 예제에서 큰 이미지에서 "src"및 "alt"텍스트를 추출하려고합니다. 이것이 나의 예이다.
<html>
<body>
....
<div id="large_image_display">
<img class="photo" src="images/KC0763_l.jpg" alt="Circles t-shirt - Navy" />
</div>
....
<div id="small_image_display">
<img class="photo" src="images/KC0763_s.jpg" alt="Circles t-shirt - Navy" />
</div>
</body>
</html>
"images / KC0763_l.jpg"및 "Circles T-shirt - Navy"를 가져 오는 XPath는 무엇입니까? 이것은 내가 얼마나 멀리 갈 수 있느냐가 잘못되었습니다. 이 시점에서 주로 의사 코드 :
\\div[@class='large_image_display']\img[1][@class='photo']@src
\\div[@class='large_image_display']\img[1][@class='photo']@alt
이 권리를 얻는 데 도움이 될 경우 대단히 감사하겠습니다.
다음 xpath는 img 태그의 src 속성으로 연결됩니다.
'//html/body/div/img[@class="photo"]/@src'
그리고 이와 비슷하게 alt 속성으로 이동합니다 :
'//html/body/div/img[@class="photo"]/@alt'
거기에서 속성 텍스트를 볼 수 있습니다. 'large_image_display'와 일치하는 항목 만 찾으려면 다음과 같이 필터링하십시오.
'//html/body/div[@id="large_image_display"]/img[@class="photo"]/@src'
다음 XPath 표현식을 사용하십시오 .
/html/body/div[@id='large_image_display']/img/@src
과
/html/body/div[@id='large_image_display']/img/@alt
매우 약한 평가 (전체 (하위) 트리가 스캔되도록 함)를 초래할 수 있으므로 항상 //
약어를 사용하지 마십시오 .
이 특별한 경우에 우리는 html
요소가 문서의 최상위 요소라는 것을 알고 있으며 간단히 /html
- not //html
선택할 수 있습니다.
귀하의 주요 문제는 표현에 사용하던 것이 었습니다 \
하고 \\
와의 XPath에서 그러한 사업자가 없습니다. 사용하려는 올바른 XPath 연산자는 /
및 //
약어입니다.