2011-04-26 5 views
0

Java에서 구문 분석하려는 응답 구조가 있습니다. 아무도 이것으로 나를 도울 수 있습니까?Java에서 XML 구문 분석

<message_response xmlns=""> 
     <action name="GETCIL"> 
     <param name="bookingNote" value="" require="" read-only=""><![CDATA[bookingNote]]></param> 
     <param name="CarrierLinkType" value="" require="" read-only=""><![CDATA[True]]></param> 
     <param name="Carrier" value="" require="" read-only=""><![CDATA[SK185]]></param> 

<param_list name="ViaAddressList" id="GETCIL"> 
     <value> 
     <param_list name="ViaAddressId" id="ViaAddressList"> 
      <value><![CDATA[877765050_5511]]></value> 
     </param_list> 
     <param_list name="AddressDate" id="ViaAddressList"> 
      <value><![CDATA[10/12/2010]]></value> 
     </param_list> 
     <param_list name="AddressTime" id="ViaAddressList"> 
      <value><![CDATA[12:12]]></value> 
     </param_list> 
     </value> 
    </param_list> 


</action> 
    </message_response> 
+3

Java에서 XML을 구문 분석하는 방법은 ** 톤 **이며 여기에 ** 톤 **의 질문이 있습니다. 좋은 대답을 얻으려면 ** XML로 무엇을하고 싶은지에 대해보다 구체적으로 설명해야합니다. 객체 트리로 변환 하시겠습니까? 몇 가지 선택된 값을 추출 하시겠습니까? 다른 형식으로 변환 하시겠습니까? –

+0

예 XML에서 값을 추출하고 싶습니다. – AndroidDev

+0

xml이 질문에 있지만 표시되지 않았기 때문에 투표를 다시 열기 위해 투표합니다. 왜냐하면 'code'형식으로되어 있지 않기 때문입니다. –

답변

1

왜 데이터 주위에 CDATA 섹션이 있습니까?

SAX 또는 DOM을 사용하여 XML을 구문 분석 할 수 있습니다.

SAX 및 DOM 파서를 래핑하는 라이브러리가있어 일상적인 작업을 더 쉽게 수행 할 수 있습니다. JDOM과 DOM4J는 자바에 대한 두 가지 생각이 듭니다. Google for - 유용한 정보를 제공하는 자습서와 예제가 있습니다. XPath.evaluate 이외의 그것에하지 훨씬 더있다

//1. load the document into memory. 
DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 

//2. Create an XPath. 
XPath xpath = XPathFactory.newInstance().newXPath(); 

//3. Evaluate the xpath expression. 
String actionName = xpath.evaluate("/message_response/action/@name", documentBuilder.parse(xmlFile)); 

:

+0

이것은 데이터를받는 형식입니다. 반복 할 코드를주세요. 나는 이것에 초보적이다. 감사. – AndroidDev

+0

아니, 너 혼자 찾아야 해. 나는 일하고있어. – duffymo

3

(SAX와 전체 문서를 구문 분석 반대) XML 문서에서 특정 값을 추출하는 가장 쉬운 방법은 다음과 같이 XPath를 사용하는 것입니다 메서드가 오버로드되어 노드 및 노드 목록을 반환 할 수 있습니다 (형식에 대해서는 javax.xml.xpath.XPathConstants 참조).

그러면 xpath 구문 (http://www.w3schools.com/xpath/xpath_syntax.asp)에서 읽기만하면됩니다.

+0

감사합니다. – AndroidDev

+0

감사합니다. 정말로 도움이되는 사실. 어떻게/message_response/action/param [11]이 목록에서 11 번째 매개 변수를 제공하는지 봅니다. 중첩 된에서 나를 도와주세요. 그 예를 찾을 수 없습니다. XML을 업데이트했습니다. 고맙습니다. – AndroidDev

+0

다음과 같이 할 수 있습니다 :'NodeList viaAddressList = (NodeList) xpath.evaluate ("/ message_response/param_list [@name = \"ViaAddressList \ "]/value/param_list", documentBuilder.parse (xmlFile), XPathConstants.NodeList); –