读取mystruts2的xml文件——dom4j读取

先看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的属性默认值
            }

        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值