方式一
package accp.dom4j;
import java.io.IOException;
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class W3cXML {
public static void main(String[] args) {
//得一文件流
InputStream is=W3cXML.class.getResourceAsStream("/actions.xml");
//得到一个工厂实例
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
//得到一个dom解析器
try {
DocumentBuilder db= dbf.newDocumentBuilder();
//解析
try {
Document doc=db.parse(is);
//get elemetn
NodeList actionList=doc.getElementsByTagName("action");
//System.out.println("Dom4jTest.main()"+actionList.getLength());
for(int i=0;i<actionList.getLength();i++){
System.out.println("----------------------->");
Element node=(Element) actionList.item(i);
String name=node.getAttribute("name");
System.out.println("acitonName:\t"+name);
String path=node.getElementsByTagName("path").item(0).getFirstChild().getNodeValue().trim();
String actionClass=node.getElementsByTagName("actionClass").item(0).getFirstChild().getNodeValue().trim();
System.out.println("path:"+path);
System.out.println("actionClass:"+actionClass);
}
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
方式二
package accp.dom4j;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4jXML {
/**
* @param args
* 不会一次读完,是一个一个的读取
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
InputStream is=Dom4jXML.class.getResourceAsStream("/actions.xml");
//解
Document doc;
try {
doc = new SAXReader().read(is);
//root
Element root=doc.getRootElement();
//reader
List<Element> actionList=root.elements("action");
//读取值
for(Element el:actionList){
System.out.println("*****************");
System.out.println("Action--name:\t"+el.attributeValue("name"));
System.out.println("path:"+el.element("path").getTextTrim());
System.out.println("class:"+el.element("actionClass").getTextTrim());
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
声明一下,我取的类名字搞反了!哈哈,dom4j和w3c
对应的XML文件格式
<?xml version="1.0" encoding="UTF-8"?>
<actions>
<action name="login" >
<path>/Login</path>
<actionClass>accp.service.Login</actionClass>
</action>
<action name="register">
<path>/Login</path>
<actionClass>accp.service.Login</actionClass>
</action>
</actions>