2013-02-23 25 views
0

我有一個XML文檔,將被用作模板編輯XML內容,並把它當作字符串,使用節點最好

<?xml version="1.0" encoding="UTF-8" standalone="no"?><entry xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><content type="application/xml"><m:properties><d:AccountEnabled>true</d:AccountEnabled><d:DisplayName>SampleAppTestj5</d:DisplayName><d:MailNickname>saTestj5</d:MailNickname><d:Password>Qwerty1234</d:Password><d:UserPrincipalName>[email protected]</d:UserPrincipalName></m:properties></content></entry> 

我使用這個代碼,其中payLoadXML稱它在Java .xml具有以上內容。

"InputStream is = getClass().getClassLoader().getResourceAsStream("/payLoadXML.xml");" 

現在我想要編輯例如標籤值改變從「saTestj5」到「saTestj6」,然後將這個整個XML並將其存儲在XML。任何人都可以告訴我如何實現這一目標?我被告知這可以通過使用「節點」來完成嗎?

回答

0
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder docBuilder = null; 
     docBuilder = docFactory.newDocumentBuilder(); 

     Document doc = null; 
     InputStream is = getClass().getClassLoader().getResourceAsStream("/payLoadXML.xml"); 
     doc = docBuilder.parse(is); 

     Node staff = doc.getElementsByTagName("m:properties").item(0); 

     Text givenNameValue = doc.createTextNode("abc"); 
     Element givenName = doc.createElement("d:GivenName"); 
     givenName.appendChild(givenNameValue); 
     staff.appendChild(givenName); 
    TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
     Transformer transformer = null; 
     transformer = transformerFactory.newTransformer(); 

     DOMSource source = new DOMSource(doc); 
     StringWriter writer = new StringWriter(); 
     StreamResult result = new StreamResult(writer); 

     transformer.transform(source, result); 
0

使用JAXB或SAX解析器轉換成目的是通過使用getter方法,改變對象並將其轉換回XML

嘗試this