设为首页 加入收藏

TOP

XML解析---dom解析和sax解析(二)
2014-11-24 00:57:16 来源: 作者: 【 】 浏览:12
Tags:XML 解析 ---dom sax
据,从而可以决定如何对数据进行处理。

1、创建解析工厂;
SAXParserFactory fac = SAXParserFactory.newInstance();

2、获取解析器;
SAXParser sp = fac.newSAXParser();

3、得到读取器;
XMLReader re = sp.getXMLReader();

4、设置内容处理器;
re.setContentHandler(new ContentHandler(){ /*实现接口的代码块*/});
(或者:re.setContentHandler(new DefaultHandler());/*参数为DefaultHandler类的子类*/)
第一种方法是解析整个XML文档,第二种方法可以只解析某个标签;
其实还有一种内容处理器,也是先继承DefaultHandler类,然后把解析的内容封装到bean对象中。

5、读取XML文档内容;
re.parse("*.xml");

======================================================================================================

XML解析开发包:

2、dom4j:

SAXReader saxReader = new SAXReader();
Document doc = saxReader.read(new File());

OutputFormat format = OutputFormat.createPrettyPrint();//该对象标明格式按漂亮的格式进行输出;另外还有一个对象是按紧凑的格式进行输出;
format.setEncoding("UTF-8");

XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(),format);
xmlWriter.write(doc);//如果xmlWriter对象采用的流是字节流,那么该对象会先把doc对象按format对象给定的编码格式转换成字节,然后把数据交给字节流进行操作。
writer.close();//最后要关闭资源

======================================================================================================

XPath:
使用XPath可以快速定位到某个节点;
List list = document.selectNodes("//foo/bar");//获取foo节点下的所有bar节点;

Node node = document.selectSingleNode("//foo/bar");//获取foo节点下的第一个bar节点;

单斜杠是绝对路径即从根节点开始;
双斜杠是相对路径即从所有当前节点开始;

星号“*”表示选择所有由星号之前的路径所定位的元素;
例如:
/aa/bb/*表示选择所有路径依附于/aa/bb的元素;
/*/*/*/bbb表示选择所有的有3个祖先元素的bbb元素;
//bb[@*]表示选择有任意属性的bb元素;
//bb[not(@*)]表示选择没有属性的bb元素;
//bb[@id='b1']表示选择含有属性id='b1'的bb元素;
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle函数中文排序 下一篇针对PHP开发人员的CouchDB基础知识

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: