+ -
当前位置:首页 → 问答吧 → xindice 中 命令行中的 XPath和xupdate 出不来内容。。

xindice 中 命令行中的 XPath和xupdate 出不来内容。。

时间:2010-12-07

来源:互联网

如题 我用xindice的XUpdateQueryService queryService =
  (XUpdateQueryService) coll.getService("XUpdateQueryService",
  "1.0");
  System.out.println("马上编译");
  count=queryService.update(xupdate);



String xupdate = "<xupdate:modifications version=\"1.0\" "
+ "xmlns:xupdate=\"http://www.xmldb.org/xupdate\">"
+ "<xupdate:update select=\"/by_table/bycicle[position()=last()]\">"
+ "<bicycle>" + "<b_id>" + by.getb_id() + "</bicycle>"+"<class>"
+ "<class_id>" + b.getclass_id() + "</class_id>"
+ "<class_name>" + class_name + "</classname>"
+ "</class>" +"<borrowed>"+b.getborrowed()+ "</borrowed>" +"<reserved>"+b.getreserved()+"</reserved>"
+ "</bicycle>" + "</xupdate:update>"
+ "</xupdate:modifications>";

结果是运行以后 myeclipse只给出trying to register database就没下文了。。
用命令行 xpath 指令 也只有一行语句trying to register database 而且我把xindice从装了一遍也不行,JDK 是 1.6 的,tomcat是6.0 的 都没错啊 xindice也是官网上下载的,其他功能都可以,向添加删除集合,添加删除xml,读取xml,都能读 就是xpath和xupdate不能用。。郁闷啊。。。

作者: a944977890   发布时间: 2010-12-07

经过多方努力 这个问题终于解决,,原因 xpath需要在所查询到的元素 属性里加入名称空间 因为当你的xml文档的根元素设定名称空间时候 你所有元素都要由此名称空间的前缀 否则就读不出来 所以两个解决方案 一是给每个元素添加根元素的文档命名空间前缀(对于必须有命名空间控制的xml文档只能这样)要是不需要就是二不给根元素添加名称空间 解决

作者: a944977890   发布时间: 2010-12-11