`
fancyboy2050
  • 浏览: 238760 次
  • 性别: Icon_minigender_1
  • 来自: 皇城根儿下
社区版块
存档分类
最新评论

jdom解析xml

    博客分类:
  • xml
阅读更多
jdom解析中所有的节点都是以Element对象为存在的。

但是在解析过程中大家要小心namespace,命名空间,看两段xml文件:

1:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<x>  
 <a>a</a>
</x>


2:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<x xmlns="http://www.xxxx.com">  
 <a>a</a>
</x>


解析代码片段:
e.getChildTextTrim("a");

当解析片段1时:能顺利取得结果a;
当解析片段2时:取得结果为null;

贴两段源码:
public String getChildText(final String name) {
        final Element child = getChild(name);
        if (child == null) {
            return null;
        }
        return child.getText();
    }

public Element getChild(final String name) {
        return getChild(name, [color=red]Namespace.NO_NAMESPACE[/color]);
    }

[color=red]public static final Namespace NO_NAMESPACE = new Namespace("", "");[/color]


当解析片段2时,因为默认的namespace为空,程序在getChild时取不到对应的节点元素,尽管该节点是存在,因为默认namespace的缘故无法取得。

所以当我们的xml文件的命名空间有变化时,也许我们的代码就需要有改变了,或者让它来适应这个变化的需求。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics