1
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");



    }
}

我正在尝试修改一个 XML 文件,然后将它们重新组合在一起。我已经处理了修改部分,但我无法将 XML 文件重新组合在一起。结果可以是 String 或 StringBuffer。

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

4

1 回答 1

2

按照WhiteFang34XML Document to StringTransformer中的描述使用 a 。

官方 Java 教程:将 DOM 编写为 XML 文件(只需进行StreamResultWrap 其他内容,例如StringWriter)。

更新:

ykaganovich基于 Load / Save 对象的鲜为人知的更短的替代方案:

于 2013-07-04T12:20:47.613 回答