使OM4J解析XML文档

package xml;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

/**
 * 使OM4J解析XML文档用D
 */
public class ParseXmlDemo {
    public static void main(String[] args) {
        /*
        解析XML文档的大致步骤:
        1:创建SAXReader
        2:使用SAXReader读取xml文档并生成Document对象
        3:通过Document对象获取根元素(根标签)
        4:从根标签开始逐渐获取子标签最终达到解析XM数据目的
         */
        try {
            //1
            SAXReader  reader=new SAXReader();
            //2
            Document doc= reader.read("./userList.xml");
            //3
            /*
            Element类的每一个实例用于表示XML文档中的一个元素(一对标签)
            它提供了一组获取元素相关信息的方法,常用的有:
            String getName()
            获取元素名字

            String getText()
            获取元素体的文本数据(开始与结束标签之间的文本信息)

            Element elememt(String name)
            获取当前指定名字的子元素

            List elements()
            获取当前元素中所有的子元素

            List elements(String name )
            获取当前元素中所有同名子元素(指定的名字)
             */
            Element root=doc.getRootElement();
            System.out.println("根元素:"+root.getName());
            //通过根标签获取其所有名为<emp>的子标签
           List<Element> empList= root.elements("emp");
            System.out.println(empList.size());
            for (Element empEle:empList){
                //获取<name>标签
                Element nameEle=empEle.element("name");
                //获取<name>标签中间的文本
                String name=nameEle.getText();

                int age=Integer.parseInt(empEle.elementText("age"));

                String gender=empEle.elementText("gender");

                int salary=Integer.parseInt(
                        empEle.elementText("salary")
                );
                int id=Integer.parseInt(
                        empEle.attributeValue("id")
                );

                System.out.println(id+","+name+","+age+","+gender+","+salary);
            }

        }catch (Exception e){
            e.printStackTrace();
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ovideooos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值