2012-04-12 2 views
0

Я использую follwing код для изменения XML-документа:
Преобразование XML-документ в строку

DocumentBuilderFactory fty1 = DocumentBuilderFactory.newInstance(); 
    fty1.setNamespaceAware(true); 
    DocumentBuilder builder1 = fty1.newDocumentBuilder(); 
    ByteArrayInputStream bais1 = new ByteArrayInputStream(tr1.getBytes());//tr1=xml string 
    Document xmldoc1=builder1.parse(bais1); 
    xmldoc1.getElementsByTagName("userID").item(0).setTextContent("123123132"); 


xmldoc1 содержит измененную форму. Теперь как преобразовать его в строку, чтобы новый doument мог быть передан другим.

ответ

4
Transformer transformer = TransformerFactory.newInstance().newTransformer(); 
transformer.setOutputProperty(OutputKeys.INDENT, "yes");   
StringWriter sw = new StringWriter(); 
StreamResult result = new StreamResult(sw); 
DOMSource source = new DOMSource(xmldoc1); 
transformer.transform(source, result); 
String xmlString = sw.toString(); 
+0

Хм ... это код XSLT :) Было бы более очевидно, если бы вы включили строку, инициализирующую 'trans'. Парень должен по-настоящему разобраться в себе. Например [здесь] (http://www.java-tips.org/java-se-tips/org.w3c.dom/saving-a-dom-tree-to-xml-file-javax.xml. parsers-5.html) на самом деле нетрудно найти. –

+0

Теперь я добавил :). – Phani

+0

@Phani: спасибо. Но есть небольшая разница. В новой строке xml элемент, содержимое которого было установлено, входит в новую строку. Это может создать другую подпись (я использую подписи xml). Почему это происходит? – Ashwin

Смежные вопросы