jdom解析中所有的节点都是以Element对象为存在的。
但是在解析过程中大家要小心namespace,命名空间,看两段xml文件: 1:a
2:
解析代码片段:a
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文件的命名空间有变化时,也许我们的代码就需要有改变了,或者让它来适应这个变化的需求。