java 解析xml 多命名空间问题

先贴段有命名空间的xml吧。。

<feed xmlns:im="http://itunes.apple.com/rss" xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
<id>...</id>
<title>iTunes Store:热门免费应用程序 在 Games</title>
<updated>2014-08-25T23:04:45-07:00</updated>
<link rel="alternate" type="text/html" href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewTop?cc=cn&id=29094&popId=27"/>
<link rel="self" href="https://itunes.apple.com/cn/rss/topfreeapplications/limit=100/genre=6014/xml"/>
<icon>http://itunes.apple.com/favicon.ico</icon>
<author>...</author>
<rights>Copyright 2008 Apple Inc.</rights>
<entry>
<updated>2014-08-25T23:04:45-07:00</updated>
<id im:id="838804006" im:bundleId="com.tencent.king.candycrushsaga">
https://itunes.apple.com/cn/app/tang-guo-chuan-qi/id838804006?mt=8&uo=2
</id>
<title>
糖果传奇 - Shenzhen Tencent Computer Systems Company Limited
</title>
<summary>
《糖果传奇》(Candy Crush Saga)是全球最受欢迎的微策略消除手游大作。以它梦富有挑战性的闯关地图、梦幻甜美的糖果风格、丰富趣味的音效、爽快流畅的手感,以及独创的微策略消除玩法,带给玩家最高品质的休闲互动体验。 在《糖果传奇》中,用户在游戏中购买的游戏代币“金条”仅限于在此应用中使用。腾讯平台上的虚拟货币, 比如Q币、Q点都无法在游戏内使用。
</summary>
<im:name>糖果传奇</im:name>
<link rel="alternate" type="text/html" href="https://itunes.apple.com/cn/app/tang-guo-chuan-qi/id838804006?mt=8&uo=2"/>
<im:contentType term="Application" label="程序"/>
</entry>
</feed>

注意到没这段xml中有 <im:name>还有属性也有 im:id 这类的,在这种情况下,就要使用命名空间了,在.net 环境下只需一句代码就可以解决了。但java就要写好多代码了。。

转一篇ibm的文章很全...我也是从那边学习的。。

java 解析xml有两个jar包(我所知),一个是org.w3c.dom下的,一个是dom4j下的,其中dom4j解析xml命名空间的资料有很多。这里的ibm使用的是 org.w3c.dom 来解析多命名空间下的xml文件,有文章及代码。。见链接:

http://www.ibm.com/developerworks/cn/xml/x-nmspccontext/

代码

原文地址:https://www.cnblogs.com/jackicalSong/p/3939165.html