org.dom4j.Document的主要用法
Posted Recently 祝祝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了org.dom4j.Document的主要用法相关的知识,希望对你有一定的参考价值。
dom4j一个处理XML配置文件的一大利器,一开始我只是学会了几个方法,方法整合一下,得到更多,学到更多
处理XML文件
第一步:
读取文件,必须要用一个io流存储,SAXReader可以通过多种方式读取xml数据,并返回Document格式的对象。通过查看源码,可以看出read()方法接收File,InputStream和URL等格式的参数来读取相应的xml数据。字符串要根据相应的编码转成输入流才能被SAXReader读取—》方法:new ByteArrayInputStream(String)
String key = "user.dir";
String name = System.getProperty(key)+"\\\\resources\\\\city.xml";
InputStream in = new FileInputStream(name);
Document document = new SAXReader().read(in);
弄了时我觉得掌握这个图里的代码就已经没问题了:忘记注释了,下次注释
Document方法:
一开始的时候我只了解到了一两个方法,那肯定是不够的呀,把方法总结一下,方便日后查询:
doucument.getRootElement() 获取根节点
document.selectSingleNode(path) 获取路径下的单个根节点 输出匹配到的第一个
path为配置文件中内容的定位 ,例如:
Location/CountryRegion[@Name='中国']/State[@Name='广西']/City[@Name='桂林']/Region
此时Region就为根节点
document.selectNodes(path) 获取路径下的所有跟节点
Eelement方法:
当要获得xml根节点中的元素时就需要把,document类型的数转化为org.dom4j.Eelement类型,然后运用Eelement类中的方法
**Eelement e = (Eelement)node; 强行转换**
** Element.attributeValue("Name") 获取属性值 Name为属性名称可以更改**
**element.getNodeType(); 获取根节点类型 **
**element.getNodeTypeName(); 获取根节点名称 **
**Eelement.**
Eelement.
Eelement.
Eelement.attribute(属性名) 获取 属性值
element.getText() 获取属性下的值
element.getName() 获取属性名称
element.getNodeTypeName()
element.getNodeType()
先来一个demo小识一下
Demo:
XML配置文件:
这个配置文件太大了,那我就放一部分吧:
<Location>
<CountryRegion Name="中国" Code="1">
<State Name="北京" Code="11">
<City Name="东城" Code="1" />
<City Name="西城" Code="2" />
<City Name="朝阳" Code="5" />
<City Name="丰台" Code="6" />
<City Name="石景山" Code="7" />
<City Name="海淀" Code="8" />
<City Name="门头沟" Code="9" />
<City Name="房山" Code="11" />
<City Name="通州" Code="12" />
<City Name="顺义" Code="13" />
<City Name="昌平" Code="21" />
<City Name="大兴" Code="24" />
<City Name="平谷" Code="26" />
<City Name="怀柔" Code="27" />
<City Name="密云" Code="28" />
<City Name="延庆" Code="29" />
</State>
<State Name="天津" Code="12">
<City Name="和平" Code="1" />
<City Name="河东" Code="2" />
<City Name="河西" Code="3" />
<City Name="南开" Code="4" />
<City Name="河北" Code="5" />
<City Name="红桥" Code="6" />
<City Name="滨海新区" Code="26" />
<City Name="东丽" Code="10" />
<City Name="西青" Code="11" />
<City Name="津南" Code="12" />
<City Name="北辰" Code="13" />
<City Name="宁河" Code="21" />
<City Name="武清" Code="22" />
<City Name="静海" Code="23" />
<City Name="宝坻" Code="24" />
<City Name="蓟县" Code="25" />
</State>
<State Name="河北" Code="13">
<City Name="石家庄" Code="1">
<Region Name="长安区" Code="2" />
<Region Name="桥东区" Code="3" />
<Region Name="桥西区" Code="4" />
<Region Name="新华区" Code="5" />
<Region Name="井陉矿区" Code="7" />
<Region Name="裕华区" Code="8" />
<Region Name="井陉县" Code="21" />
<Region Name="正定县" Code="23" />
<Region Name="栾城县" Code="24" />
<Region Name="行唐县" Code="25" />
<Region Name="灵寿县" Code="26" />
<Region Name="高邑县" Code="27" />
<Region Name="深泽县" Code="28" />
<Region Name="赞皇县" Code="29" />
<Region Name="无极县" Code="30" />
<Region Name="平山县" Code="31" />
<Region Name="元氏县" Code="32" />
<Region Name="赵县" Code="33" />
<Region Name="辛集市" Code="81" />
<Region Name="藁城市" Code="82" />
<Region Name="晋州市" Code="83" />
<Region Name="新乐市" Code="84" />
<Region Name="鹿泉市" Code="85" />
</City>
<City Name="唐山" Code="2">
<Region Name="路南区" Code="2" />
<Region Name="路北区" Code="3" />
<Region Name="古冶区" Code="4" />
<Region Name="开平区" Code="5" />
<Region Name="丰南区" Code="7" />
<Region Name="丰润区" Code="8" />
<Region Name="曹妃甸区" Code="9" />
<Region Name="滦 县" Code="23" />
<Region Name="滦南县" Code="24" />
<Region Name="乐亭县" Code="25" />
<Region Name="迁西县" Code="27" />
<Region Name="玉田县" Code="29" />
<Region Name="遵化市" Code="81" />
<Region Name="迁安市" Code="83" />
</City>
<City Name="秦皇岛" Code="3">
<Region Name="海港区" Code="2" />
<Region Name="山海关区" Code="3" />
<Region Name="北戴河区" Code="4" />
<Region Name="青龙满族自治县" Code="21" />
<Region Name="昌黎县" Code="22" />
<Region Name="抚宁县" Code="23" />
<Region Name="卢龙县" Code="24" />
</City>
<City Name="邯郸" Code="4">
<Region Name="邯山区" Code="2" />
<Region Name="丛台区" Code="3" />
<Region Name="复兴区" Code="4" />
<Region Name="峰峰矿区" Code="6" />
<Region Name="邯郸县" Code="21" />
<Region Name="临漳县" Code="23" />
<Region Name="成安县" Code="24" />
<Region Name="大名县" Code="25" />
<Region Name="涉 县" Code="26" />
<Region Name="磁 县" Code="27"<以上是关于org.dom4j.Document的主要用法的主要内容,如果未能解决你的问题,请参考以下文章