2013-08-13 3 views
2

방금 ​​XPath로 작업하기 시작했는데 문제가 생겼습니다. 다음은 추출 할 코드입니다.XPath로 두 태그 사이에 내용 추출하기

<h3>Some Company</h3> 
    Mainstreet 1234 
<br> 
    98776, Country 
<br> 

h3과 br 태그 사이에 내용을 어떻게 추출합니까?

답변

2

이것은 h3/following-sibling::node()[not(preceding-sibling::br) and not(self::br)] (나에게 "Mainstreet 1234"를 반환) 일할 수 있습니다.

그러나 나는 실제 xml에 만족하고 있으며 실제 요구 사항은 제공된 샘플보다 복잡하므로 요구 사항에 맞게 추가 조정이 필요할 수도 있습니다.

+0

완벽하게 작동합니다. 정말 고맙습니다! – Severin

1

코드가 아래 블록에있는 경우 : 당신은 당신에게 H3 노드 다음과 BR 노드 앞에있는 모든 파 노드 내부의 텍스트를 제공하기 위해 XPath를 말할 필요가

<par> 
    <h3>Some Company</h3> 
    Mainstreet 1234 
    <br> 
    98776, Country 
    </br> 
</par> 

.

//par/text()[preceding::*[name()='h3'] and following::*[name()='br']] 

은 위의 파 노드에 대한 문서의 모든 곳에서 검색 할 것입니다 : 는 XPath는 측면에서이에 변환합니다. 당신은뿐만 아니라하여 H3의 내용 및/또는 BR 노드에 대한보다 구체적인 얻을 수 있습니다 :

//par/text()[preceding::*[name()='h3' and text()='Some Company'] and following::*[name()='br']] 

는 위의 문제가 해결되지 않을 경우 알려 주시기 바랍니다.