2011-02-04 4 views
1

여러 컨텍스트에서 동일한 쿼리를 실행하려고하지만 동일한 결과를 항상 가져옵니다.XPath.selectNodes (컨텍스트)가 항상 JDOM에서 전체 문서를 사용합니다.

final XPath xpath = XPath.newInstance("//t"); 

List<Element> result = xpath.selectNodes(thisIsThePelement); 
// and I've debuged it, it really is the <p> element 

을 그리고 난 항상 결과 목록에서 모두 <t> 요소를 얻을 : 그래서 내가 뭘하는지입니다

<root> 
<p> 
    <r> 
    <t>text</t> 
    </r> 
</p> 
<t>text2</t> 
</root> 

: 이 예제 XML이다. <t> 안에 <p>이 있어야합니다. XPath 개체로 전달 중입니다.

어떤 아이디어라도 도움이 될 것입니다. 감사합니다.

답변

9

XPath 표현식에 "//t"을 사용하고 있습니다. 정확하게 말하면 "문서의 모든 t 요소를 찾으십시오"라는 의미입니다.

컨텍스트 노드의 자손t 요소 만 찾으려면 ".//t"을 사용하십시오.

자세한 내용은 XPath 사양의 "abbreviated syntax" 부분을 참조하십시오.

+0

감사합니다. "그냥 읽어주세요"라고 말하지 마셔 고맙습니다. :) 내 xpath 지식이 필요하지 않은 것 같습니다. – Simeon

관련 문제