先看mystruts2的xml文件:
这里写<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mystruts SYSTEM "mystruts.dtd">
<mystruts>
<actions>
<action name="register"
class="RegisterAction">
<result name="success">success.jsp</result>
<result name="input">register.jsp</result>
</action>
</actions>
</mystruts>
dtd文件
<!ELEMENT mystruts (actions)>
<!ELEMENT actions (action*)>
<!ELEMENT action (result*)>
<!ATTLIST action
name CDATA #REQUIRED
class CDATA #REQUIRED >
<!ELEMENT result (#PCDATA)>
<!ATTLIST result
name CDATA #IMPLIED
redirect (true|false) "false" >
以下为读取xml代码部分
这里写package test;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import javax.swing.plaf.synth.SynthSpinnerUI;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.tree.DefaultAttribute;
public class Test {
/**
* @throws DocumentException @param args @throws
*/
public static void main(String[] args) throws DocumentException {
SAXReader saxReader = new SAXReader();
Document dc = saxReader.read(new File("src/mystruts.xml"));
// 获取根节点
Element element = dc.getRootElement(); // mystruts
// 获取到actions
List<Element> actions = element.element("actions").elements("action");
for (Element e : actions) {
System.out.println(e.attribute("name").getData());
System.out.println(e.attribute("class").getData());
// System.out.println(e.elementText("result")); //这里只能获取到第一个
System.out.println("=====================");
// 使用Iterator获取result标签的值 和name属性的值
for (Iterator ior = e.elementIterator(); ior.hasNext();) {
Element ee = (Element) ior.next();
System.out.println(ee.getText());//取result标签的值
System.out.println(ee.attributeValue("name"));//name的值
}
// 使用List集合获取result标签的值
System.out.println("==================");
List<Element> list = e.elements();
for (Element element2 : list) {
System.out.println(element2.getText());//取result标签的值
System.out.println(element2.attribute("name").getData());//name的值
}
System.out.println("=============================");
// 获取result标签中那么的值。
List<DefaultAttribute> e2 = e.element("result").attributes();// 获取的对象org.dom4j.tree.DefaultAttribute
for (DefaultAttribute d : e2) {
System.out.println(d.getName());//获取dtd文件中Result的属性名。name和redirect
System.out.println(d.getData());//获取dtd文件中Result的属性默认值
}
}
}
}