我有一个像这样的字符串:
String msg=
<?xml version="1.0" encoding="UTF-8" standalone="no">
<validateEmail>
<emailid>abc@gmail.com</emailid>
<instanceid>instance1</instanceid>
<msgname>validatemsg</msgname>
<taskid>task1</taskid>
</validateEmail>
我如何能够将此字符串转换为 xml 文件并附加一个新节点。
谢谢
最佳答案
此代码将您的字符串转换为 XML 文档,添加一个新节点,然后将其作为字符串打印出来,以便您检查它看起来是否正确。
public void xml() throws ParserConfigurationException, SAXException, IOException {
String msg = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>";
msg += "<validateEmail><emailid>abc@gmail.com</emailid><instanceid>instance1</instanceid>";
msg += "<msgname>validatemsg</msgname><taskid>task1</taskid></validateEmail>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new ByteArrayInputStream(msg.getBytes()));
Node newNode = doc.createElement("newnode");
newNode.setTextContent("value");
Node root = doc.getFirstChild();
root.appendChild(newNode);
try {
DOMSource domSource = new DOMSource(doc);
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.transform(domSource, result);
System.out.println(writer.toString());
} catch (TransformerException ex) {
ex.printStackTrace();
}
}
关于java - 如何使用java在xml中附加一个新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4013687/