Dom4j解析复杂xml获取想要的内容

一只开发狗001 2019-12-12 09:51:05
先上xml如下

<?xml version="1.0" encoding="utf-8"?>
<feed xml:base="" xmlns="" xmlns:d="" xmlns:m="">
<id></id>
<title type="text">Users</title>
<updated>2019-12-11T02:28:30Z</updated>
<link rel="self" title="Users" href="Users"/>
<entry>
<id>(1L)</id>
<category term="" scheme=""/>
<link rel="edit" title="User" href="Users(1L)"/>
<link rel="" type="application/atom+xml;type=feed" title="Sessions" href="Users(1L)/Sessions"/>
<title/>
<updated>2019-12-11T02:28:30Z</updated>
<author>
<name/>
</author>
<content type="application/xml">
<m:properties>
<d:Id m:type="Edm.Int64">1</d:Id>
<d:Sid>S-1-5-7</d:Sid>
<d:Upn></d:Upn>
<d:UserName>ANONYMOUS LOGON</d:UserName>
<d:FullName></d:FullName>
<d:Domain></d:Domain>
<d:CreatedDate m:type="Edm.DateTime">2019-11-20T05:01:43.2</d:CreatedDate>
<d:ModifiedDate m:type="Edm.DateTime">2019-11-20T05:01:43.2</d:ModifiedDate>
</m:properties>
</content>
</entry>
<entry>
<id></id>
<category term="" scheme=""/>
<link rel="edit" title="User" href="Users(2L)"/>
<link rel="" type="application/atom+xml;type=feed" title="Sessions" href="Users(2L)/Sessions"/>
<title/>
<updated>2019-12-11T02:28:30Z</updated>
<author>
<name/>
</author>
<content type="application/xml">
<m:properties>
<d:Id m:type="Edm.Int64">2</d:Id>
<d:Sid>S-1-5-21-916077177-3160758025-4246751474-1106</d:Sid>
<d:Upn>text01@text.com</d:Upn>
<d:UserName>text01</d:UserName>
<d:FullName>textt01</d:FullName>
<d:Domain>LINGHANG</d:Domain>
<d:CreatedDate m:type="Edm.DateTime">2019-11-21T05:49:47.823</d:CreatedDate>
<d:ModifiedDate m:type="Edm.DateTime">2019-12-02T04:55:24.29</d:ModifiedDate>
</m:properties>
</content>
</entry>
</feed>

xml中有多个entry节点需要遍历,遍历后如何得到其子节点中d:的属性值,遍历没啥问题,但是遍历后寻找这个节点下的子节点就出了问题,老是显示获取的内容为空,求大神指教,指向获得这些属性值将其变为List<Map>,谢谢
...全文
125 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
一只开发狗001 2019-12-12
  • 打赏
  • 举报
回复
问题已经解决
dkwuxiang 2019-12-12
  • 打赏
  • 举报
回复
public static void main(String[] args) throws DocumentException {
		SAXReader reader = new SAXReader();
		List<Map<String, String>> result = new ArrayList<Map<String, String>>();
        File file = new File("C:\\Users\\lenovo\\Desktop\\javaUtils\\111.xml");

        Document document = reader.read(file);

        Element root = document.getRootElement();
        List<Element> entrys = root.elements("entry");
        for (Element entry : entrys) {
        	Element content = entry.element("content");
        	Element m = content.element("properties");
        	List<Element> elements = m.elements();
        	Map<String, String> map = new HashMap<String, String>();
        	for (Element d : elements) {
        		map.put(d.getName(), d.getText());
			}
        	result.add(map);

        }
        System.out.println(result);
	}
由李刚编著的《疯狂XML讲义》主要以XML为核心,深入地介绍了XML的, 各种相关知识。本书作为疯狂Java体系图书之一,依然保持该体系图书系统, 、全面的特点:不仅详细介绍了XML文档的各种知识,还通过案例示范了实, 际开发中如何应用XML知识。, 《疯狂XML讲义》主要分为五个部分。第一部分介绍了XML、DTD、XML, Schema等基础知识,这些知识主要教读者如何定义有效的XML文档,这部分, 内容是深入学习后面知识的基础,也是每个使用XML的开发者都应该掌握的, 基础。第二部分介绍了CSS、XSLT和XPath等知识,通过使用CSS或XSLT,可, 直接将XML文档当成视图技术。第三部分介绍了DOM、SAX、JAXP、dom4j、, JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4j和JDOM都以结构化的, 方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而, XQuery则是一种新规范,通过XQuery可以查询XML文档中的数据,就像使用, SQL查询关系数据库的数据一样。第四部分介绍了Web ServicesService和, CXF,其中CXF是Java领域的主流Web ServicesService框架,简单易用。第, 五部分则提供了两个综合性案例:基于XML的电子公告系统和电子拍卖系统, ,让读者将前面所学应用到实际项目中。,尤其是电子拍卖系统,。它是一, 个包含5个表,表之间具有复杂关联映射的系统,该案例采用目前最流行、, 最规范的轻量级Java EE架构,将整个应用分为领域对象层、DAO层和业务逻, 辑层,然后用CXF将业务逻辑组件包装成Web ServicesService,从而可以将, 现有的Java EE项目与其他平台的、其他语言的异构项目进行整合,具有极, 好的指导价值和借鉴意义。, 《疯狂XML讲义》大部分章节后都提供了相应的编程习题,供开发者巩, 固所学,将理论融入实际开发之用。关于这些编程习题的解题思路和参考答, 案可登录http://www.crazyit.org获取。, 《疯狂XML讲义》是疯狂Java体系丛书之一,学习本书无须任何XML基础, ,但DOM、SAX、dom4j、JDOM解析部分包含了大量Java编程,因此建议先认, 真阅读疯狂Java体系的《疯狂Java讲义》一书。
由李刚编著的《疯狂XML讲义》主要以XML为核心,深入地介绍了XML的, 各种相关知识。本书作为疯狂Java体系图书之一,依然保持该体系图书系统, 、全面的特点:不仅详细介绍了XML文档的各种知识,还通过案例示范了实, 际开发中如何应用XML知识。, 《疯狂XML讲义》主要分为五个部分。第一部分介绍了XML、DTD、XML, Schema等基础知识,这些知识主要教读者如何定义有效的XML文档,这部分, 内容是深入学习后面知识的基础,也是每个使用XML的开发者都应该掌握的, 基础。第二部分介绍了CSS、XSLT和XPath等知识,通过使用CSS或XSLT,可, 直接将XML文档当成视图技术。第三部分介绍了DOM、SAX、JAXP、dom4j、, JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4j和JDOM都以结构化的, 方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而, XQuery则是一种新规范,通过XQuery可以查询XML文档中的数据,就像使用, SQL查询关系数据库的数据一样。第四部分介绍了Web ServicesService和, CXF,其中CXF是Java领域的主流Web ServicesSer vice框架,简单易用。第, 五部分则提供了两个综合性案例:基于XML的电子公告系统和电子拍卖系统, ,让读者将前面所学应用到实际项目中。,尤其是电子拍卖系统,。它是一, 个包含5个表,表之间具有复杂关联映射的系统,该案例采用目前最流行、, 最规范的轻量级Java EE架构,将整个应用分为领域对象层、DAO层和业务逻, 辑层,然后用CXF将业务逻辑组件包装成Web ServicesService,从而可以将, 现有的Java EE项目与其他平台的、其他语言的异构项目进行整合,具有极, 好的指导价值和借鉴意义。, 《疯狂XML讲义》大部分章节后都提供了相应的编程习题,供开发者巩, 固所学,将理论融入实际开发之用。关于这些编程习题的解题思路和参考答, 案可登录http://www.crazyit.org获取。, 《疯狂XML讲义》是疯狂Java体系丛书之一,学习本书无须任何XML基础, ,但DOM、SAX、dom4j、JDOM解析部分包含了大量Java编程,因此建议先认, 真阅读疯狂Java体系的《疯狂Java讲义》一书。
《疯狂XML讲义》主要以XML为核心,深入地介绍了XML的各种相关知识。《疯狂XML讲义》作为疯狂Java体系图书之一,依然保持该体系图书系统、全面的特点:不仅详细介绍了XML,文档的各种知识,还通过案例示范了实际开发中如何应用XML知识。 《疯狂XML讲义》主要分为五个部分。第一部分介绍了XML、DTD、XML Schema等基础知识,这些知识主要教读者如何定义有效的XML文档,这部分内容是深入学习后面知识的基础,也是每个使用XML的开发者都应该掌握的基础。第二部分介绍了CSS、XSLT和XPath等知识,通过使用CSS或XSLT,可直接将XML文档当成视图技术。第三部分介绍了DOM、SAX、JAXP、dom4j、JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4i和JDOM都以结构化的方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而XQuery则是一种新规范,通过X Query可以查询XML,文档中的数据,就像使用SQL查询关系数据库的数据一样。第四部分介绍了Web Services和CXF,其中CXF是Java领域的主流Web Services框架,简单易用。第五部分则提供了两个综合性案例:基于XML的电子公告系统和电子拍卖系统,让读者将前面所学应用到实际项目中。尤其是电子拍卖系统,它是一个包含5个表,表之间具有复杂关联映射的系统,该案例采用目前最流行、最规范的轻量级Java EE架构,将整个应用分为领域对象层、DAO层和业务逻辑层,然后用CXF将业务逻辑组件包装成Web Services,从而可以将现有的Java EE项目与其他平台的、其他语言的异构项目进行整合,具有极好的指导价值和借鉴意义。 《疯狂XML讲义》大部分章节后都提供了相应的编程习题,供开发者巩固所学,将理论融入实际开发之用。关于这些编程习题的解题思路和参考答案可登录http://www.crazyit.org获取。 《疯狂XML讲义》是疯狂Java体系丛书之一,学习《疯狂XML讲义》无须任何XMI,基础,但DOM、SAX、dora4i、JDOM解析部分包含了大量Java编程,因此建议先认真阅读疯狂Java体系的《疯狂Java讲义》一书。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧