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>,谢谢
...全文
131 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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);
	}

62,635

社区成员

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

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