1,需要引用dom4j的jar:dom4j.osgi-1.6.1.jar,然后通过SAXReader和Document 和Elements和Iterator来配合使用,就可以读出xml文件了,
如:public String readerXMLFile(String path){
String neirong="";
String a="a";
neirong="<xml varsion='1.0' encoding='UTF-8'>"+"\n";
try {
File f=new File(path);
SAXReader saxReader=new SAXReader();
Document doc=saxReader.read(f);
Element elements=doc.getRootElement();
neirong=neirong+"<"+elements.getName()+">"+"\n";
for(Iterator i=elements.elementIterator();i.hasNext();){
Element element=(Element) i.next();
neirong=neirong+this.getElementsText(element);
}
neirong=neirong+"</"+elements.getName()+">";
return neirong;
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return neirong;
}
}
public String getElementsText(Element element){
Iterator iterator=element.elementIterator();
String text="";
if(iterator.hasNext()){
text=text+"<"+element.getName()+">"+"\n";
}else{
text=text+"<"+element.getName()+">";
}
int i=0;
while(iterator.hasNext()){
Element element_1=(Element) iterator.next();
text=text+this.getElementsText(element_1)+"";
i=i+1;
}
if(i==0){
text=text+element.getText()+"</"+element.getName()+">"+"\n";
}else{
text=text+"</"+element.getName()+">"+"\n";
}
return text;
}
这种方式是循环来读取内容,简单有效,不好的地方是无法控制元素前面的空格。
如:public String readerXMLFile(String path){
String neirong="";
String a="a";
neirong="<xml varsion='1.0' encoding='UTF-8'>"+"\n";
try {
File f=new File(path);
SAXReader saxReader=new SAXReader();
Document doc=saxReader.read(f);
Element elements=doc.getRootElement();
neirong=neirong+"<"+elements.getName()+">"+"\n";
for(Iterator i=elements.elementIterator();i.hasNext();){
Element element=(Element) i.next();
neirong=neirong+this.getElementsText(element);
}
neirong=neirong+"</"+elements.getName()+">";
return neirong;
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return neirong;
}
}
public String getElementsText(Element element){
Iterator iterator=element.elementIterator();
String text="";
if(iterator.hasNext()){
text=text+"<"+element.getName()+">"+"\n";
}else{
text=text+"<"+element.getName()+">";
}
int i=0;
while(iterator.hasNext()){
Element element_1=(Element) iterator.next();
text=text+this.getElementsText(element_1)+"";
i=i+1;
}
if(i==0){
text=text+element.getText()+"</"+element.getName()+">"+"\n";
}else{
text=text+"</"+element.getName()+">"+"\n";
}
return text;
}
这种方式是循环来读取内容,简单有效,不好的地方是无法控制元素前面的空格。