【发布时间】:2009-10-30 01:09:31
【问题描述】:
互联网上有很多“读取”文件的示例,但我找不到关于“编辑”节点值并将其写回原始文件的任何内容。
我有一个 不工作 xml writer 类,如下所示:
import org.w3c.dom.Document;
public class RunIt {
public static Document xmlDocument;
public static void main(String[] args)
throws TransformerException, IOException {
try {
xmlDocument = DocumentBuilderFactory.newInstance()
.newDocumentBuilder().parse("thor.xml");
} catch (IOException ex) {
ex.printStackTrace();
} catch (SAXException ex) {
ex.printStackTrace();
} catch (ParserConfigurationException ex) {
ex.printStackTrace();
}
addElement("A", "New");
writeDoc();
}
public static void addElement(String path, String val){
Element e = xmlDocument.createElement(path);
e.appendChild(xmlDocument.createTextNode(val));
xmlDocument.getDocumentElement().appendChild(e);
}
public static void writeDoc() throws TransformerException, IOException {
StringWriter writer = new StringWriter();
Transformer tf;
try {
tf = TransformerFactory.newInstance().newTransformer();
tf.transform(new DOMSource(xmlDocument), new StreamResult(writer));
writer.close();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerFactoryConfigurationError e) {
e.printStackTrace();
}
}
}
对于这个例子,假设这是 XML,我想添加一个包含值“New”的“C”节点(在 A 节点内):
<A>
<B>Original</B>
</A>
【问题讨论】:
-
最终,这是我想出的答案:thegreenoak.blogspot.com/2012/07/…