java中DOM解析xml文件
本文介绍了如何利用DOM(即Document Object Model文档对象模型)解析xml文件。
首先有一个xml文件:
<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
<User><city country="中国">南京</city><name>刘文文</name><age>25</age><sex>男</sex><occupation>程序员</occupation>
</User>
利用DOM解析这个xml文件:
import java.io.ByteArrayInputStream;
import java.io.InputStream;import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;
import org.w3c.dom.NodeList;public class ParsingXml {public static void main(String args[]) {String xml="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n" + "<User>\r\n" + " <city country=\"中国\">南京</city>\r\n" + " <name>刘文文</name>\r\n" + " <age>25</age>\r\n" + " <sex>男</sex>\r\n" + " <occupation>>程序员</occupation>\r\n" + "</User>\r\n" + "";DOMParsingXml(xml);}public static void DOMParsingXml(String xml) {try {byte[] b=xml.getBytes();InputStream inp=new ByteArrayInputStream(b);DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();Document doc=builder.parse(inp);NodeList nl=doc.getElementsByTagName("User");for (int i = 0; i < nl.getLength(); i++) {System.out.println("country:" + doc.getElementsByTagName("city").item(i).getAttributes().getNamedItem("country").getNodeValue());System.out.println("city: " + doc.getElementsByTagName("city").item(i).getFirstChild().getNodeValue());System.out.println("name: " + doc.getElementsByTagName("name").item(i).getFirstChild().getNodeValue());System.out.println("age: " + doc.getElementsByTagName("age").item(i).getFirstChild().getNodeValue());System.out.println("sex: " + doc.getElementsByTagName("sex").item(i).getFirstChild().getNodeValue());System.out.println("occupation: " + doc.getElementsByTagName("occupation").item(i).getFirstChild().getNodeValue());}} catch (Exception e) {System.out.println(e.getMessage());}}
}
可以看到DOM解析xml文件是可以得到xml的属性值的,但是这样解析的xml有一个问题,就是当标签里的值为空的时候,解析xml文件就会报错为:java.lang.NullPointerException(空指针异常),那么我们需要在解析值可能为空的标签的时候加一次判断,是否为标准的dom格式,如果不是,则赋值为空(null),如下所示:
if (标签名 instanceof Element) {//则为标准形式,可以取到值
}else{//在此处赋值为空
}
运行这个程序,可以看到控制台输入结果为:
java中DOM解析xml文件相关推荐
- Java中Dom解析XML
DOM将整个XML文件加载到内存中,并构建出节点树:应用程序可以通过遍历节点树的方式来解析XML文件中的各个节点.属性等信息: 这种方式便于对XML节点的添加修改等,而且解析也很方便,然后它比较耗费内 ...
- Java中DOM4J解析xml文件浅析
DOM4J解析它是JDOM的一种智能分支.它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持.XML Schema支持以及用于大文档或流化文档的基于事件的处理.它还提供了构建文档表 ...
- 在java中在线解析XML文件内容
这里的天气属性有很多,可以根据自己的需求获取天气属性 这里用到了org.json的jar包,因为要使用XML属性解析数据,还有alibab.JAONObject的jar包 /*** 天气预报-更新* ...
- Android程序解析xml至文档中,Android开发之DOM解析xml文件的方法
本文实例讲述了Android中DOM解析xml文件的方法.分享给大家供大家参考,具体如下: 一.在assets文件中写xml文件 李明 30 李向梅 25 二.在service中写一个DOM解析的操作 ...
- java dom xml 换行,dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件...
网友求助:dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件 问题importjava.text.SimpleDateFormat; import ...
- Android学习笔记---Android平台1.使用dom解析xml文件
1.使用dom解析xml文件 除了使用 SAX可以解析XML文件,大家也可以使用熟悉的DOM来解析XML文件. DOM解析XML文 件时,会将XML文件的所有内容以文档树方式存放在内存中,然后允许您使 ...
- java dom解析xml路径中文_Java如何基于DOM解析xml文件
一.Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath 此文针对其中的DOM方法具体展开介绍及代码分析 sax.dom是两种对xml文档进行解析的方法(没有具体实 ...
- 【java】jdom解析xml文件
java中有四种分别解析xml文件.分别是,DOM,SAX,DOM4J,JDOM四种.我第一篇就介绍用Jdom解析XML.本人觉得这四种学习其中一种即可.其余三中解析思想差不了多少.况且这四种介绍优缺 ...
- java使用DOM4j解析XML文件
1.简介 dom4j是java中的XML API,性能优异.功能强大.开放源代码. 也是所有解析XML文件方法中最常用的! 2.代码实操 准备需要j的ar包添加到lib目录下,dom4j-2.1.1. ...
最新文章
- WEB 打印的相关技术分析
- Nature Microbiology:全球污水处理厂细菌群落揭秘!
- fedora利用vmlinuz和initrd制作linux启动u盘,Fedora 17的U盘安装方法
- Android 如何快速写满存储空间
- 编程方法学7:循环与一半
- QT的QPair类的使用
- PXE高效批量安装和Kickstart无人值守安装——真正完成批量自动安装
- python编辑器安装视频教程_Python安装教程(推荐一款不错的Python编辑器)
- Python MetaClass
- cocos2d pod_cocos2d 和 cocos3d的版本问题
- BSD/MIT/Apache许可证印象尚可
- ArrayList使用
- Netflix:如何打造开放协作的实时 ETL 平台?
- iOS autoreleasePool 深入理解
- Python调用阿里API进行车牌识别
- 杂谈——TCP/IP 协议栈详解
- 重磅发布: 营销数据中台白皮书(附全文下载)
- html文本编码声明,黑帽seo技术之文字HTML编码变体的实现解密
- 带你详细入门华为云会议
- 数据透视表+函数搞定Excel中的非重复计数