使用dom4j解析xml

使用dom4j解析xml

xml格式如下

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright w3school.com.cn -->
<!-- W3School.com.cn bookstore example -->
-<bookstore>
-<book category="children">
	<key>
		<int>100</int>
	</key>
	<value>
		<string>aaaa</string>
		<string>bbb</string>
		<string>ccc</string>
	</value>
</book>
-<book category="cooking">
	<key>
		<int>100</int>
	</key>
	<value>
		<string>aaaa</string>
	</value>
</book>
-<book category="web" cover="paperback">
	<key>
		<int>100</int>
	</key>
	<value>
		<int>123</int>
		<int>456</int>
		<int>789</int>
	</value>
</book>

代码

------创建实体类

@Data
public class dto {
        private int key;
        private List<Object> value;
}

-----逻辑

	// 创建SAXReader
    SAXReader reader = new SAXReader();
   //从xml文件获取数据
   Document document = reader.read(new File("/analysisxml/src/analysis/InstrumentRecord.xml"));
   // 获取根节点 emps
   Element root = document.getRootElement();
   // 查找指定节点名称book 的所有子节点elements
   // 得到所有book 元素
  List<Element> list = root.elements("book ");
  // 实体类
	List<dto>dtos=new ArrayList<>();
	for (Element element : list) {
                dto dto =new dto();
                // 循环输出全部emp的相关信息
                System.out.println("element.getName()==>"+element.getName());
                // 得到emp元素下的子元素
                List<Element> Key = element.elements("Key");

                for (Element value : Key) {
                
                    Element string = value.element("int");
                    dto.setKey( string.getText());
                    System.out.println("key:" + string.getText());

                }
                List<Element> Value = element.elements("Value");
                for (Element value : Value) {
                    List<Object> values =new ArrayList<>();
                    List<Element> elements = value.elements("ArrayOfString");
                    for (Element element1 : elements){
                            List<Element> elements1 = element1.elements("string");
                            for (int i = 0; i < elements1.size(); i++) {
                                String name = elements1.get(i).getText();
                                values.add(name);
                                System.out.println("qqqqqqq:" + name);
                            }
                        }


                    List<Element> string = value.elements("string");
                    for (int i = 0; i < string.size(); i++) {
                        String name = string.get(i).getText();
                        values.add(name);
                        System.out.println("Value:" + name);
                    }

                    List<Element> elements1 = value.elements("int");
                    for (int i = 0; i < elements1.size(); i++) {
                        String name = elements1.get(i).getText();
                        values.add(name);
                        System.out.println("elements1:" + name);
                    }
                    //抛出异常
                    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值