最近,突然感到可能要解析xml,所以就又复习了一下dom4j,当然解析xml的包以及方法很多,dom4j只是其中的一种,也不知道现在都用些什么。写点程序就当是笔记了。
package com.xml.dom4j.test;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
public class Dom4jTest {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
//产生xml
sb.append("<Songs><song>");
sb.append("<mp3 kbs=\"128\" size=\"6128\">");
sb.append("<id3><title>Simon</title>");
sb.append("</id3></mp3></song></Songs>");
try{
Document document = DocumentHelper.parseText(sb.toString());
treeWalk(document);
}catch(Exception e){
e.printStackTrace();
}
}
public static void treeWalk(Document document) {
treeWalk( document.getRootElement() );
}
public static void treeWalk(Element element) {
for ( int i = 0, size = element.nodeCount(); i < size; i++ ) {
Node node = element.node(i);
//打印该element的name
System.out.println(element.getName());
//打印element所含node的name
System.out.println(node.getName());
//对名为mp3的element进行操作
if(element.getName().equals("mp3")){
//获取属性size的值
Attribute attribute=element.attribute("size");
String text=attribute.getText();
System.out.println(text);
}
if ( node instanceof Element ) {
treeWalk( (Element) node );
}
else {
//获取element的内容
System.out.println(element.getText());
}
}
}
}
以上只是对dom4j的简单应用,对于复杂的应用还需要学习。