实习看代码,但是发现代码中用到的dom4j以前没用过,被师傅一阵鄙视。。。所以,直接建了工程做简单的测试。
过程如下:
下一步别点”create a simple...."
next 到下图,添加项目信息
找到建好的项目发现没有resources文件夹,默认不建立,需要自己手动来
在src/main/java上鼠标右击 new -> source floder,输入“resuorces"
然后就建好了,test下的resources也一样。
导入jar包:
pom文件中加入依赖:
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.1</version>
然后:项目右击->maven->update project..即可导入dom4jar包
我们的测试文件如下:
内容:
<?xml version="1.0" encoding="UTF-8"?>
<mods id = "123" name = "name">
<mod>mod1</mod>
<mod>mod2</mod>
<mod>mod3</mod>
<m id = "234">
<m1>m11</m1>
<m1>m12</m1>
<m1>m13</m1>
</m>
</mods>
然后在src/main/java下面新建类:
packagedom4;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.InputStream;
importjava.net.MalformedURLException;
importjava.util.Iterator;
importorg.dom4j.Attribute;
importorg.dom4j.Document;
importorg.dom4j.DocumentException;
importorg.dom4j.Element;
importorg.dom4j.io.SAXReader;
publicclass DomTest {
public void init() throws Exception{
try {
SAXReader saxReader= new SAXReader();
//InputStreaminputStream = this.getClass().getResourceAsStream("/mod.xml");
Document document =saxReader.read("D:/workspace/dom4/src/main/resources/mods.xml");
Element rootElement= document.getRootElement();
traceChild(rootElement);
traceAttributes(rootElement);
traceNodeName(rootElement,"mod");
System.out.println("根节点名称:"+rootElement.getName());
System.out.println("attributesof root "+ rootElement.attributeCount());
System.out.println("idvalue "+ rootElement.attributeValue("id"));
System.out.println("根节点内文本"+rootElement.getTextTrim());
System.out.println("根节点内文本(1):"+rootElement.getTextTrim());//去掉的是标签与标签之间的tab键和换行符等等,不是内容前后的空格
System.out.println("根节点子节点文本内容:"+rootElement.getStringValue());
Element element =rootElement.element("mod");
System.out.println("mod" + element.getText());
Element element2 =rootElement.element("m");
System.out.println("m" + element2.getTextTrim());
traceChild(element2);
} catch (Exception e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
}
public void traceChild(Element root){
System.out.println("printchildren:");
for ( Iterator i =root.elementIterator(); i.hasNext(); ) {
Element element =(Element) i.next();
System.out.print(element.getTextTrim()+"");
}
System.out.println();
}
public void traceNodeName(Element root,String name){
System.out.println("printnodeNames:");
for ( Iterator i =root.elementIterator(name); i.hasNext();) {
Element foo =(Element) i.next();
System.out.print(foo.getText()+"");;
}
System.out.println();
}
public void traceAttributes(Elementroot){
System.out.println("printattributes:");
for ( Iterator i =root.attributeIterator(); i.hasNext(); ) {
Attribute attribute= (Attribute) i.next();
System.out.print(attribute.getText()+" ");
}
System.out.println();
}
public static void main(String[] args){
// TODO Auto-generated methodstub
DomTest d = new DomTest();
try {
d.init();
} catch (Exception e) {
// TODOAuto-generated catch block
e.printStackTrace();
}
}
}
执行结果如下:
print children:
mod1 mod2 mod3
print attributes:
123 name
print nodeNames:
mod1 mod2 mod3
根节点名称:mods
attributes of root2
id value 123
根节点内文本
根节点内文本(1):
根节点子节点文本内容:
mod1
mod2
mod3
m11
m12
m13
mod mod1
m
print children:
m11 m12 m13
本文介绍使用DOM4J库解析XML文件的过程及方法。包括搭建环境、添加资源文件夹、导入jar包,并通过示例代码展示如何读取XML元素、属性及文本内容。
786

被折叠的 条评论
为什么被折叠?



