码迷,mamicode.com
首页 > 其他好文 > 详细

XML解析

时间:2017-07-23 15:20:24      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:str   string   UI   ttext   list   factory   解析xml   tno   ==   

1.DOM

  使用DOM方式解析xml文件,首先通过DocumentBuilderFactory实例创建DocumentBuilder对象,通过该对象的parse(“url”)方法对xml文件进行解析获得Document对象。 

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
//创建DocumentBuilder对象
DocumentBuilder db = dbf.newDocumentBuilder();
//通过DocumentBuilder对象调用parse方法解析
Document document = db.parse("book.xml");

 

1.1 解析文件的属性名和属性值

NodeList bookList = document.getElementsByTagName("book");
System.out.println("共有"+bookList.getLength()+"本书");
//遍历获得每一个book节点
for (int i = 0; i < bookList.getLength(); i++) {
Node book = bookList.item(i);

//下面注释是两种方法获得book属性
// //获得book节点所有属性集合(在不知道属性有多少情况)
NamedNodeMap attrs = book.getAttributes();
System.out.println("第"+(i+1)+"本书共有"+attrs.getLength()+"个属性");
for (int j = 0; j < attrs.getLength(); j++) {
Node attr = attrs.item(j);
//获取属性值
System.out.print(attr.getNodeName()+" ");
System.out.println(attr.getNodeValue());
}

 

//知道book节点有且只有一个属性id
//首先通过强制类型转化为Element类型
Element book = (Element)bookList.item(i);
//获得id属性值
String attrValue = book.getAttribute("id");
System.out.println("id属性值为"+attrValue);

1.2 解析文件的节点名和节点值

//获取book节点的子节点集合
NodeList childNotes = book.getChildNodes();
//在解析xml文档时会把文本也解析为该节点下面的子节点,空格解析为文本
System.out.println("第"+(i+1)+"个节点共有"+childNotes.getLength()+"个子节点");
for (int j = 0; j < childNotes.getLength(); j++) {
Node childNote = childNotes.item(j);
//区分出text类型的node及element类型的node
if(childNote.getNodeType() == Node.ELEMENT_NODE){
System.out.print(childNote.getNodeName()+" ");
//不能直接getNodeValue会返回null
//因为把一对节点之间的内容也看成该节点的子节点
System.out.println(childNote.getFirstChild().getNodeValue());

//也可以用getTextContent方法获得节点内容,与getNodeValue不同的是
//如果子节点下仍有子节点则getNodeValue返回null,而getTextContent返回该节点及子节点内容
// System.out.println(childNote.getTextContent());
}
}

}

XML解析

标签:str   string   UI   ttext   list   factory   解析xml   tno   ==   

原文地址:http://www.cnblogs.com/simple96/p/7224622.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!