日期:2014-05-17  浏览次数:20677 次

suse下dom4j的selectNodes返回值为空问题
今天在做项目时遇到一个dom4j的取xml的问题,xml文件是正确的。。
代码大致如下
Document doc = saxReader.read(new File(file name)); //这行解析成功
public void getElement(String name)
{
  List elementsList = doc.selectNodes("//" + name);
  if ((elementsList != null) && (elementsList.size() > index))
  {
  Object obj = elementsList.get(index);
  if (obj instanceof DefaultDocument)
  {
  return ((DefaultDocument)obj).getRootElement();
  }
  return (Element)elementsList.get(index);
  }
  return null;
}
在window下运行正常。

但是在suse环境下,
List elementsList = doc.selectNodes("//" + name);
这行代码取不到值,只能返回一个List对象。传进来的name是在xml文件中有的。
不知道有谁遇到过类似问题没。
我是解决了这个问题
使用doc.getRootElement.selectNodes("//"+name); 就可以了。
但是不明白为什么。
可能suse环境做了什么设置还是什么。
请教高手了。
回帖给分



------解决方案--------------------
suse 么搞过!
------解决方案--------------------
两个环境应该有出入,估计是名称空间造成的