如何使用dom将元素附加到XML文件中?

Sus*_*ire 2 java xml dom

我的XML文件如下所示:

<Messages>
    <Contact Name="Robin" Number="8775454554">
        <Message Date="24 Jan 2012" Time="04:04">this is report1</Message>
    </Contact>
    <Contact Name="Tobin" Number="546456456">
        <Message Date="24 Jan 2012" Time="04:04">this is report2</Message>
    </Contact>
<Messages>
Run Code Online (Sandbox Code Playgroud)

我需要检查Contact元素的'Number'属性是否等于'somenumber',如果是,我需要在Contact元素中插入一个Message元素.

如何使用DOM实现?使用DOM有什么缺点?

Kin*_*ick 5

使用DOM的主要缺点是必须立即将整个模型加载到内存中,而不是简单地解析文档,您可以限制一次保存在内存中的数据.在处理非常大的XML文档之前,这当然不是问题.

至于事物的处理方面,类似下面的东西应该工作:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document dom = db.parse(is);
NodeList contacts = dom.getElementsByTagName("Contact");
for(int i = 0; i < contacts.getLength(); i++) {
    Element contact = (Element) contacts.item(i);
    String contactNumber = contact.getAttribute("Number");
    if(contactNumber.equals(somenumber)) {
        Element newMessage = dom.createElement("Message");
        // Configure the message element
        contact.appendChild(newMessage);
    }
}
Run Code Online (Sandbox Code Playgroud)