我的 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>
我需要检查 Contact 元素的“Number”属性是否等于“somenumber”,如果是,我需要在 Contact 元素中再插入一个 Message 元素。
如何使用DOM实现?使用 DOM 有什么缺点?
最佳答案
使用 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);
}
}
关于java - 如何使用 dom 在 XML 文件中追加元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8987792/