本期精彩
目录
类名.class.getResourceAsStream("xxx"):拿到同包下的文件
类名.class.getResourceAsStream("/xxx"):拿到根目录下的文件
context.getResourceAsStream("/WIN-INF/xxx"):拿到WIN-INF安全路径
selectNodes:拿到多个元素
selectSingleNode:拿到单个元素
getRootElement():拿到根元素
attributeValue:只有元素才可以点出这个方法来获取值
getText:拿到元素文本
注:元素可以是节点,但是元素中的属性是节点不是元素
/:定位路径
@:属性
1、需要解析的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>
2、在编写解析代码之前需要导入的jar包👇
3、编写解析操作的代码👇
- 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("已结束解析");
- }
- }
- }
输出结果👇(可以看到已经获取到了上面所提供的XML文件中的相关元素和节点了)