dom4j解析xml文件

1.引入依赖

<dependency>
      <groupId>org.dom4j</groupId>
      <artifactId>dom4j</artifactId>
      <version>2.0.0</version>
    </dependency>
  </dependencies>

2.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<do-config>
    <do path="User/adduser" type="UserPackage.UserServlet">
        <forward name="Success">AddSuccess.jsp</forward>
        <forward name="Error">Adderror.jsp</forward>
    </do>

</do-config>
  

3.java解析

public class text03 {
    public static void main(String[] args) {
        SAXReader reader = new SAXReader(); // User.hbm.xml表示你要解析的xml文档
        //获取输入流
        InputStream in = Thread.currentThread().getContextClassLoader()
                .getResourceAsStream("text01.xml");
        try {
            Document doc = reader.read(in);
            // 获取根节点
            Element root = doc.getRootElement(); 
            //遍历根节点下的子节点
            for (Iterator it=root.elementIterator();it.hasNext();){
            	//获取根节点下的子节点,这里获取的是do标签
                Element next = (Element) it.next();
                //getName()获取子节点的名称
                String name = next.getName();
                System.out.println(name);
				//获取子节点名字为path的属性值
                String path = next.attributeValue("path");
                System.out.println(path);
                //获取子节点为type的属性值
                String type = next.attributeValue("type");
                System.out.println(type);
                //获取do下的子节点
                for (Iterator obj=next.elementIterator();obj.hasNext();){
                    Element next1 = (Element) obj.next();
                    String name1 = next1.attributeValue("name");
                    System.out.println(name1);
                    //getText()获取文本值
                    String text = next1.getText();
                    System.out.println(text);
                }
            }

        } catch (DocumentException e) {

            e.printStackTrace();
        }

    }
}

4.结果

do
User/adduser
UserPackage.UserServlet
Success
AddSuccess.jsp
Error
Adderror.jsp

5.部分函数详解

getName()元素的local name
getText()元素所含有的text内容,如果内容为空则返回一个空字符串而不是null
getTextTrim()元素所含有的text内容,其中连续的空格被转化为单个空格,该方法不会返回null
attributeIterator()元素属性的iterator,其中每个元素都是Attribute对象
attributeValue()元素的某个指定属性所含的值
elementIterator()元素的子元素的iterator,其中每个元素都是Element对象
getParent元素的父元素
isTextOnly()是否该元素只含有text或是空元素
isRootElement()是否该元素是XML树的根节点

6.一篇比较详细dom4j文章推荐

文章推荐【点我】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值