java - 如何使用java在xml中附加一个新值?

标签 java xml

我有一个像这样的字符串:

       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/

相关文章:

c++ - _di_IXMLNode 中不需要的 xmlns =""

java - 为什么运行时异常是未经检查的异常?

java - 枚举集 JPA 2.0

Java 到 XML 的 Castor 映射

xml - 将更新的 XMLDocument 保存为字符串(vb.net 或其他 .net 语言。)

android - 从 XML 解析数据时出错

xml - 删除 Vim 中的重复行?

Java如何抽象地持久化一个值?

java - 用于向soap xml 添加一个新标签的 XSL 文件

java - 如何在剧中显示 SPARQL 查询的输出!看法?