使用JAXP DOM读取XML文档教程

本教程不是使用JDOM,DOM4J等工具解析XML文档的演示,而是仅使用Java API进行,使用的是jdk自带的JAXP,后面视频中没有写JAXP DOM部分,直接说是Java dom api,说的是一个事.

我们使用一个简单的xml文档,书籍列表books.xml: Xml文件结构为<books><book><title /><author /></book></books>,详细见源码。

根据W3C的标准,要想操纵XML文档,需要获得对应的XML文档的Document实例.

方法如下:
//通过 DocumentBuilderFactory获得DocumentBuilder实例
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setIgnoringElementContentWhitespace(true);
DocumentBuilder docbuilder = dbf.newDocumentBuilder();
//通过DocumentBuilder实例,其实就是解析器,获得xml文件的Document实例
Document doc = docbuilder.parse(new File("books.xml"));

其中dbf.setIgnoringElementContentWhitespace(true);是用来设置是否忽略掉元素中的空白和换行的,并且这个方法只有xml文档是有效的,也就是xml 文档使用了dtd验证才有效,否则无效.经过试验发现,使用xsd也是无效的。

获得了Document实例后,
//获得根元素
Element root = doc.getDocumentElement();
//获得所有book元素
NodeList books = root.getChildNodes();
//使用for循环将所有书的信息都输出出来
StringBuilder strb = new StringBuilder();
Node title = null;
Node author = null;

for(int i=0;i<books.getLength();i++)
{
  title = books.item(i).getChildNodes().item(0);
  author = books.item(i).getChildNodes().item(1);
  strb.append("第"+(i+1)+"本书的信息如下:\n");
  strb.append("书名:"+title.getTextContent()+"\t作者:"+author.getTextContent()+"\n");
}
System.out.println(strb.toString());

输出信息如下:

第1本书的信息如下:
书名:Hello world    作者:ade
第2本书的信息如下:
书名:Historycreator.com你好世界    作者:qqqq 

本文原创,转载请注明转自:www.historycreator.com

本文配套视频教程和源码下载地址为:

配套视频教程和源码下载地址1


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: XML
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.