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