首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

jdom高手请问个有关问题,若能答复不胜感激!

2013-09-11 
jdom高手请教个问题,若能答复不胜感激!!!!!!!!!我目前在做一个jsp根据客户端提交的表单数据在服务器端生成

jdom高手请教个问题,若能答复不胜感激!!!!!!!!!
我目前在做一个jsp根据客户端提交的表单数据在服务器端生成固定格式的word文档的项目,生成的东西是word格式的xml文件,要替换这个文件里的内容,层次比较多而且内容也不少,在用jdom读取根元素的时候没问题,获得根元素的子元素的时候也没问题,但是获得根元素的子元素的子元素的时候就出错了,请各位帮我看看啊,xml文件的一部分如下所示,不需要替换的元素的内容我都没写出来
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
<w:wordDocument>
  <w:ignoreElements />
  <o:DocumentProperties></o:DocumentProperties>
  <w:fonts></w:fonts>
  <w:lists></w:lists>
  <w:styles></w:styles>
  <w:divs></w:divs>
  <w:shapeDefaults></w:shapeDefaults>
  <w:docPr></w:docPr>
  <w:body>
  <wx:sect>
  <w:p></w:p>
  <w:p></w:p>
  <w:p>
  <w:pPr>
  <w:r></w:r>
  <w:r></w:r>
  <w:rPr>
  <w:t>待替换内容</w:t>
  </w:rPr>
  </w:pPr>
  </w:p
  </wx:sect>
  </w:body>
<w:wordDocument>
JSP代码是

<%
String webappPath=request.getRealPath("/");
  String userdataName="change.xml";
  SAXBuilder builder = new SAXBuilder();
  Document readdocument=builder.build(webappPath+userdataName);
  Element rootEle = readdocument.getRootElement();//得到根元素
  Element wbodyEle=rootEle.getChild("w:body");
  Element wxsectEle=wbodyEle.getChild("wx:sect");
%>
然后页面提示
org.apache.jasper.JasperException: An exception occurred processing JSP page /change.jsp at line 21

18: Document readdocument=builder.build(webappPath+userdataName);
19: Element rootEle = readdocument.getRootElement();//得到根元素
20: Element wbodyEle=rootEle.getChild("w:body");
21: Element wxsectEle=wbodyEle.getChild("wx:sect");
22: /*
23: java.util.List rootList=rootEle.getChildren();
24: Element wbodyEle=(Element)rootList.get(7);
可是我把jSP最后一行的代码
Element wxsectEle=wbodyEle.getChild("wx:sect");
我以为只有wxsectEle这个元素没有获得,但是写了个测试发现wbodyEle都没有获得,这是怎么回事儿呢?

[解决办法]
那是当然,getChild只要元素名就可以了,命名空间是不需要的。
也就是说Element wbodyEle=rootEle.getChild("body");就可以了。
我在另一贴已经回复了。用XPATH才要命名空间,而且是另外的写法。

我的异常网推荐解决方案:An exception occurred processing JSP page,http://www.myexception.cn/j2se/33144.html

热点排行