2015-04-28 113 views
0

在網上很好看,我正在努力與這一個。基本上,我調用一個API,它返回XML,這個XML需要更新,然後發送回api。我公司目前擁有的代碼是:「[#document:null]」問題與XML解析

public string update(){ 

String url = GeneralProps.getProperty("XMLUpdateURL")+testCaseID+"/block/include/data/no"; 
ArrayList<String> tempArray = HttpHelper.sendAuthGetRequest(url, GeneralProps.getProperty("Username"), GeneralProps.getProperty("Password")); 

     Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(tempArray.get(1).toString()))); 

    XPathExpression expr = xpath.compile("//Step["+ stepNo + "]/"+ nodeName   +"/text()"); 
     Object result = expr.evaluate(doc, XPathConstants.NODESET); 
     NodeList nodes = (NodeList) result; 
     for (int i = 0; i < nodes.getLength(); i++) { 
      System.out.println(nodes.item(i).getNodeValue()); 
      nodes.item(i).setNodeValue(newNodeValue); 
      System.out.println(nodes.item(i).getNodeValue()); 

     } 

    return doc; 

    } 

然而,DOC返回[#document:空] - 這意味着該文件實際上是在那裏,我可以作出適當修改,但我似乎無法從文檔獲取XML因爲這是需要繞過到另一種方法上傳XML到API,但我無法弄清楚如何!

回答

0

我想通了這一點....

使用下面的代碼:

Transformer transformer = TransformerFactory.newInstance().newTransformer(); 
     transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
     StreamResult sResult = new StreamResult(new StringWriter()); 
     DOMSource source = new DOMSource(doc); 
     transformer.transform(source, sResult); 
     String xmlString = sResult.getWriter().toString();  

     return xmlString; 

我能夠將內容轉換爲字符串,並上載該字符串,因爲我需要...