2013-07-16 1 views
0

JDOM을 처음 사용하고 있으며 아직까지는 성공적이지 않습니다. 또한 저는 Java 프로젝트가 할당 된 .NET 사용자입니다.JDN을 사용하여 XML 읽기

이 XML 파일이 있는데 모든 요소를 ​​읽으려고합니다.

이것은 내가 지금까지 가지고있는 코드입니다. 응답은 xml 데이터를 얻는 곳입니다. 루트 요소를 읽을 수는 있지만 요소를 읽는 데 어려움을 겪고 있습니다. 모든 아이디어 ??

JSONObject ticket = data.getDataJSON(); 
    String id  = ticket.getString(SDPTicketKeyValues.Key.ID); 
    String input_data = ""; 

    Content response = Request 
      .Post(REST_URL + REQUEST_RESOURCE + id + "/" + NOTES_RESOURCE) 
      .bodyForm(
       Form.form().add(TECHKEY_PARAMETER, MYTECH_KEY) 
         .add(OPERATION_PARAMETER, GETNOTES_OPERATION) 
         .add("INPUT_DATA", input_data) 
         .build()) 
     .execute().returnContent(); 

    SAXBuilder builder = new SAXBuilder(); 
    StringReader reader  = new StringReader(response.asString()); 
    Document document = (Document) builder.build(reader); 
    Element rootNode = document.getRootElement(); 

내가 다른 방법으로 그것을하기로 결정 xml 파일

<?xml version="1.0" encoding="UTF-8"?> 
<API version="1.0"> 
    <response> 
     <operation name="GET_NOTES"> 
      <result> 
       <statuscode>200</statuscode> 
       <status>Success</status> 
       <message>Notes details fetched successfully.</message> 
      </result> 

      <Details> 
       <Notes> 
        <Note URI="http://localhost:8080/sdpapi/request/10/notes/901/"> 
         <parameter> 
         <name>isPublic</name> 
         <value>false</value> 
         </parameter> 
         <parameter> 
         <name>notesText</name> 
         <value>dfgfdgdfgdfgdgdgdgdgdg</value> 
         </parameter> 
         <parameter> 
         <name>userName</name> 
         <value>Howard Stern</value> 
         </parameter> 
         <parameter> 
         <name>notesDate</name> 
         <value>1373971580200</value> 
         </parameter> 
        </Note> 

        <Note URI="http://localhost:8080/sdpapi/request/10/notes/612/"> 
         <parameter> 
         <name>isPublic</name> 
         <value>false</value> 
         </parameter> 
         <parameter> 
         <name>notesText</name> 
         <value>dfgdfgdfgdfgdfgdfgdfgdf</value> 
         </parameter> 
         <parameter> 
         <name>userName</name> 
         <value>Howard Stern</value> 
         </parameter> 
         <parameter> 
         <name>notesDate</name> 
         <value>1373967102396</value> 
         </parameter> 
        </Note> 

        <Note URI="http://localhost:8080/sdpapi/request/10/notes/611/"> 
         <parameter> 
         <name>isPublic</name> 
         <value>true</value> 
         </parameter> 
         <parameter> 
         <name>notesText</name> 
         <value>dfgdfgdfgdfgdfgdfgdgdgdgd</value> 
         </parameter> 
         <parameter> 
         <name>userName</name> 
         <value>Howard Stern</value> 
         </parameter> 
         <parameter> 
         <name>notesDate</name> 
         <value>1373967097117</value> 
         </parameter> 
        </Note> 
       </Notes> 
      </Details> 
     </operation> 
    </response> 
</API> 

답변

0

하고 지금은 일하고있어. 코드예요.

Document xml  = loadXMLFromString(response.asString()); 
    NodeList notesList = xml.getElementsByTagName(XML_NOTE); 
    List<Note> notes = new ArrayList<Note>(); 

    for (int notesLoop = 0; notesLoop < notesList.getLength(); notesLoop++) { 
     Element notesNode = (Element) notesList.item(notesLoop); 
     Note newNote  = new Note(); 

     String iD = notesNode.getAttribute("URI").substring(notesNode.getAttribute("URI").lastIndexOf("/")); 
     newNote.setUri(notesNode.getAttribute("URI")); 

     NodeList paramList = notesNode.getElementsByTagName(XML_PARAMETER); 

     for (int paramsLoop = 0; paramsLoop < paramList.getLength(); paramsLoop++) { 
      Element paramsNode = (Element) paramList.item(paramsLoop); 
      Params ll = new Params(); 

      NodeList name = paramsNode.getElementsByTagName("name"); 
      NodeList value = paramsNode.getElementsByTagName("value"); 

      ll.setName(name.item(0).getFirstChild().getNodeValue()); 
      ll.setValue(value.item(0).getFirstChild().getNodeValue()); 

      newNote.getParams().add(ll); 
     } 

     notes.add(newNote); 
    }