javaxml修改

javaxml修改,java,xml,Java,Xml,我试图修改一个XML文件,然后将其全部重新组合在一起。我已经处理了修改部分,但是我无法恢复XML文件。结果可以是字符串或StringBuffer 最好/最简单的方法是什么?使用变压器,如中所述 官方Java教程:(只需制作StreamResult包装其他内容,如StringWriter) 更新: 基于加载/保存对象:用于漂亮打印的XML(缩进)外观。不要看选择的答案,而是看TransformerFactory。谢谢你的回答。你的代码有什么相关性?你的问题根本没有提到它……横向建议:使用一个不那么

我试图修改一个XML文件,然后将其全部重新组合在一起。我已经处理了修改部分,但是我无法恢复XML文件。结果可以是字符串或StringBuffer


最好/最简单的方法是什么?

使用变压器,如中所述

官方Java教程:(只需制作
StreamResult
包装其他内容,如
StringWriter

更新:


基于加载/保存对象:

用于漂亮打印的XML(缩进)外观。不要看选择的答案,而是看
TransformerFactory
。谢谢你的回答。你的代码有什么相关性?你的问题根本没有提到它……横向建议:使用一个不那么愚蠢的XMLAPI,它不会隐藏这个功能,比如JDOM。(不,我不是标准DOM的粉丝。)
import java.io.ByteArrayInputStream;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class modifyXML {

    public static void modify(StringBuffer XMLBuffer) throws IOException, ParserConfigurationException, SAXException{

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();   
        Document doc = db.parse(new ByteArrayInputStream(XMLBuffer.toString().getBytes()));
        Element rootNode = doc.getDocumentElement();

        NodeList priceList = rootNode.getElementsByTagName("price");
        priceList.item(0).setTextContent("190");

        NodeList inStockList = rootNode.getElementsByTagName("id_product_attribute");
        inStockList.item(0).setTextContent("100");



    }
}