我的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有什么缺点?
使用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)
| 归档时间: |
|
| 查看次数: |
5073 次 |
| 最近记录: |