2013-11-22 7 views
0

나는 XML 구문 분석 및 자바 XPATH 쿼리에서 절대적으로 새로운 오전 나는 다음과 같은 문제가 있습니다XPATH를 사용하여 처음부터 마지막까지 태그 목록을 스크롤하는 방법은 무엇입니까?

<?xml version="1.0" encoding="UTF-8"?> 
<root> 

    <status> 
    <id>0</id> 
    <message /> 
    </status> 

    <objectList> 
    <object id="obj1"> 
     <property1>value</property1> 
     <property2>value</property2> 
     <property3 /> 
    </object> 

    <object id="obj2 "> 
     <property1>value</sproperty1> 
     <property2>value</property2> 
     <property3>value</property3> 
    </object> 

    <object id="obj3 "> 
     <property1>value</sproperty1> 
     <property2>value</property2> 
     <property3>value</property3> 
    </object> 

    </objectList> 
</root> 
: 나는 몇 가지 질의를 할 필요가있는 다음과 같은 XML 파일이

을 내가해야 할

우선 고유 <id>0</id> 태그 안에 값을 내가 다음 XPATH 쿼리 (잘이 쿼리 작업)을 사용하여 그것을 할 수 있습니다

XPath xPath = XPath.newInstance("s:Envelope/s:Body"); 
xPath.addNamespace("s", "http://schemas.xmlsoap.org/soap/envelope/"); 


org.jdom.Element objectElement = (Element) xPath.selectSingleNode(documentXML); 
System.out.println("objectElement: " + objectElement); 

이 잘 작동하고 <id>0</id> 태그 내부에 0 값을 객체 내 objectElement 안에 넣어 (documentXML 이전 XML 문서를 포함하는 경우).

좋아, 는 지금은 더 복잡한 작업을 수행 할 수있다 (그리고 난에 대한 더 많은 아이디어가없는 그것을 어떻게) 다음 중 하나입니다 :

당신은 내가라는 태그를 볼 수있는 통해 Objectlist 즉, 3 태그 일부 일부 특성을 갖는 3 Java 오브젝트 (속성 1, property2과 관련된 자바 objectt로 3 개 변수 것 property3)

의리스트를 나타내는 객체라는 포함

지금 나는 다음과 같은 작업을 수행 할 수 있습니다 XML 문서 내의 각 개체 태그에 새로운 자바 객체를 생성하고 새로운 자바 객체에 관련된 값 내부의 속성 서브 태그 값을 넣어

문제가 있다는 것입니다 I 내 태그 (처음부터 끝까지) 안에있는 obecjt 태그 목록을 스크롤하는 것에 대해 전혀 모른다.

몇 가지 아이디어가 있습니까? 누군가 내가 그 일을하도록 도울 수 있습니까? @TonyHopkinson는 지적

TNX

안드레아

+1

XPath가 잘못되어 id 속성을 가진 모든 objectList/object 노드를 선택하려는 경우 foreach를 수행 할 수 있습니다. 예 :/root/objectlist/object [@id] –

+0

괜찮지 만 ... 태그 안에있는 태그의 수를 어떻게 알 수 있습니까? – AndreaNobili

+0

@TonyHopkinson 또는 어쩌면 내가 무슨 말을하고 있는지 이해하지 못했을까요? – AndreaNobili

답변

1

당신은 /root/objectlist/object[@id] 다음 selectSingleNode()selectNodes() 첨부 :의 INSEAD를 사용 expath 식을 사용합니다. 전자는 반복 할 수있는 목록을 반환합니다.

+0

mmm 노드 목록을 생성하지만이 목록의 모양이 다음과 같으므로 원하는대로 작동하지 않습니다. objectsList : [[Element : ], [Element : ]] 외부 태그가 포함되어 있지만 내용은 다음과 같습니다 .--( – AndreaNobili

+1

내용이있는 경우 다른 Xpath 표현식 (예 : "property1") 만 있으면됩니다. –