XML小练习:利用DOM解析XML(初级,实用性不强)
2015-05-26 12:27
295 查看
XML文件(candidate.xml):
Java实现(Domtest1.java):
<?xml version="1.0"?> <PEOPLE> <PERSON PERSONID="E01"> <NAME>Tony Blair</NAME> <ADDRESS>10 Downing Street, London, UK</ADDRESS> <TEL>(061) 98765</TEL> <FAX>(061) 98765</FAX> <EMAIL>blair@everywhere.com</EMAIL> </PERSON> <PERSON PERSONID="E02"> <NAME>Bill Clinton</NAME> <ADDRESS>White House, USA</ADDRESS> <TEL>(001) 6400 98765</TEL> <FAX>(001) 6400 98765</FAX> <EMAIL>bill@everywhere.com</EMAIL> </PERSON> <PERSON PERSONID="E03"> <NAME>Tom Cruise</NAME> <ADDRESS>57 Jumbo Street, New York, USA</ADDRESS> <TEL>(001) 4500 67859</TEL> <FAX>(001) 4500 67859</FAX> <EMAIL>cruise@everywhere.com</EMAIL> </PERSON> <PERSON PERSONID="E04"> <NAME>Linda Goodman</NAME> <ADDRESS>78 Crax Lane, London, UK</ADDRESS> <TEL>(061) 54 56789</TEL> <FAX>(061) 54 56789</FAX> <EMAIL>linda@everywhere.com</EMAIL> </PERSON> </PEOPLE>
Java实现(Domtest1.java):
package com.xml.dom; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.Element; public class Domtest1 { public static void main(String[] args) throws Exception { // 获取DOM解析器工厂 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); // 获得具体的DOM解析器 DocumentBuilder db = dbf.newDocumentBuilder(); // 解析XML文档,获得Document对象(根结点) Document document = db.parse(new File("candidate.xml")); //获取根元素 Element root = document.getDocumentElement(); System.out.println(root.getNodeName()); NodeList list = root.getChildNodes(); // NodeList list = document.getElementsByTagName("PERSON"); System.out.println(countChildElement(list) + "个PERSON\n"); for (int i = 0; i < list.getLength(); i++) { if (list.item(i).getNodeType() == Node.TEXT_NODE) { continue;//遇到 “#text” 跳过本次循环 } Element element = (Element) list.item(i); NamedNodeMap nnm = list.item(i).getAttributes(); String attrname = nnm.item(0).getNodeName(); String attrvalue = nnm.item(0).getNodeValue(); System.out.println(attrname + ":" + attrvalue); String content = element.getElementsByTagName("NAME").item(0) .getFirstChild().getNodeValue(); System.out.println("name:" + content); content = element.getElementsByTagName("ADDRESS").item(0) .getFirstChild().getNodeValue(); System.out.println("address:" + content); content = element.getElementsByTagName("TEL").item(0) .getFirstChild().getNodeValue(); System.out.println("tel:" + content); content = element.getElementsByTagName("FAX").item(0) .getFirstChild().getNodeValue(); System.out.println("fax:" + content); content = element.getElementsByTagName("EMAIL").item(0) .getFirstChild().getNodeValue(); System.out.println("email:" + content); System.out.println("================================================"); } } //计算真正的元素格式 private static int countChildElement(NodeList list) { int validCount = 0; for (int i = 0; i < list.getLength(); i++) { if (list.item(i).getNodeType() != Node.TEXT_NODE) { validCount++;//不对“#text”进行统计 } } return validCount; } }
相关文章推荐
- XML小练习:利用DOM解析XML(利用递归,实用性强)
- 利用DOM解析XML文档实例
- 利用DOM解析XML文档实例
- 利用JAXP开发包进行DOM方式解析XML文档
- XML小练习:利用SAX解析XML文档(感觉不方便)
- python中利用xml.dom模块解析xml的方法教程
- Android 中利用SAX ,Dom,pull解析 XML 文件
- XML小练习:利用dom4j对XML文档进行解析(爽感yo~yo~yo~)
- 解析xml进行DOM操作练习
- 【XML解析】(2)利用DOM解析技术对XML文档进行增删改查操作
- 利用DOM解析xml文件
- 【XML解析】(3)利用DOM解析技术在XML文档下实现一个《通讯录管理系统》
- jaxp利用DOM解析XML
- 利用SAX、DOM和Pull实现对schools.xml的解析并进行单元测试
- 利用java的Dom解析XML文件
- java语言连接mysql数据库并利用XML解析工具DOM生成XML文件,然后利用DOM SAX对所生成XML文件里的详细信息进行解析
- Android平台中实现对XML的三种解析方式(DOM 、PULL、 SAX)
- android利用Pull解析器解析、生成XMl文件
- XML文档解析DOM、SAX、JDOM、DOM4j、XPath
- DOM解析XML(二)