目录
需要用到的jar包:

导入jar包后,将XML文件存入项目中,根据存放路径不同读取的方法也会有所不同
类名.class.getResourceAsStream("xxx"):拿到同包下的文件
类名.class.getResourceAsStream("/xxx"):拿到根目录下的文件
类名.getResourceAsStream("/WIN-INF/xxx"):拿到WIN-INF安全路径
selectNodes:拿到多个元素
selectSingleNode:拿到单个元素
getRootElement():拿到根元素
attributeValue:只有元素才可以点出这个方法来获取值
getText:拿到元素文本
/:定位路径
@:属性
创建xml文件config.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE config[
- <!ELEMENT config (action*)>
- <!ELEMENT action (forward*)>
- <!ELEMENT forward EMPTY>
- <!ATTLIST action
- path CDATA #REQUIRED
- type CDATA #REQUIRED
- >
- <!ATTLIST forward
- name CDATA #REQUIRED
- path CDATA #REQUIRED
- redirect (true|false) "false"
- >
- ]>
- <config>
- <action path="/studentAction" type="org.lisen.mvc.action.StudentAction">
- <forward name="students" path="/students/studentList.jsp" redirect="false"/>
- </action>
- <action path="/studentAction02" type="org.lisen.mvc.action.StudentAction">
- <forward name="students02" path="/students/studentList.jsp" redirect="false"/>
- </action>
- </config>
导入需要用到的jar包

编写执行代码
- public class XmlReader {
-
- public static void main(String[] args) throws Exception {
- InputStream in = XmlReader.class.getResourceAsStream("/config.xml");
- SAXReader reader = new SAXReader();
- Document doc = reader.read(in);
-
- Element rootElement = doc.getRootElement();
- List<Element> actions = rootElement.selectNodes("action");
-
- for(Element e: actions) {
- String path = e.attributeValue("path");
- String type = e.attributeValue("type");
-
- System.out.println("action path = "+path);
- System.out.println("action type = "+type);
-
- List<Element> forwards = e.selectNodes("forward");
- for(Element f: forwards) {
- String name = f.attributeValue("name");
- String fPath = f.attributeValue("path");
- String redirect = f.attributeValue("redirect");
-
- System.out.println("forward name = "+name);
- System.out.println("forward fPath = "+fPath);
- System.out.println("forward redirect = "+redirect);
- }
- System.out.println("已结束解析");
- }
- }
- }
输出结果
