2011-03-22 3 views
2

주어진 XML 구조가 다음과 같습니다.DOM4J : 속성 값을 기준으로 필터링하는 노드 값 검색

<elem> 
    <val id="1">aaa</val> 
    <val id="2">bbb</val> 
</elem> 

SAXReader (DOM4J)를 사용하면 id = 1 인 노드 (예 : 'aaa')에 포함 된 값을 어떻게 얻을 수 있습니까?

나는 이것을 시도했다 :

String value = elem.element("val[@id='1']") 

여기서 elem은 올바른 "path.current"이지만 작동하지 않았다.

아마 내가 잘못된 구문을 사용하여 조건을 작성 중입니다 ... 제안?

+0

기타 참고 사항 : 찾고 계신 속성 값을 인용해야합니다. "val [@ id = 1]"은 (는) 일치하지 않습니다. – Shane

답변

3

는 XPath 구문이 잘 보이는 [아이디 = '1'@] 어떤 부모 와일드 카드 // 발 [아이디 = '1'@]/ELEM/발 있지만 :

+0

이것은 나를 위해 일했습니다! 고맙습니다 :) – lucke84

0

당신은 전체 XPath를 시도 할 수 있습니다 대신 selectSingleNode 메소드를 사용해야합니다.

Node value = elem.selectSingleNode("val[@id='1']/text()"); 
+0

내 문제는 dom4j 구문에 있었지만 감사합니다 :) – lucke84