JDom如何嵌入第三方接口传入的XML数据
2012-11-16 11:28
288 查看
我们在工作中会经常遇到这样的接口需求,我们本身组装了一个org.jdom.Document对象,然后把第三方接口传过来的XML数据嵌入到当前Document对象中,由于第三方接口受到不同的平台不同架构的限制,第三方接口返回的数据往往不会是Document对象或者Element对象,而更常见的是整个XML数据,这时我们就需要手动解析XML数据并嵌入到挡墙Document对象中,下面就JDom中嵌入传入的XML数据给出一个简单的例子:
//我方的XML数据
Document doc = new Document(File);
Element root = new Element("root");
doc.setRootElement(root);
//第三方返回的XML数据
String xml = getThirdInterfaceXML();
StringReader sr = new StringReader(xml);
Document thirdDoc= builder.build(sr);
Element thirdRoot= thirdDoc.getRootElement();
//由于root中的parent不为空,上层节点invoke addContent时如果被添加的element中的parent不为空,则抛出异常addNode失败,所 以此时应该清空parent
Parent p = thirdRoot.getParent();
p.removeContent(thirdRoot);
必须编写以上两行代码,否则由于thirdDoc和thirdRoot之间存在父子关系,而我们调用addContent代码时,JDOM会判断parent如果不为空,则直接抛出异常org.jdom.IllegalAddException: The element "*******" could not be added as the root of the document: The Content already has an existing parent document
最后调用代码
root.addContent(thirdRoot);
调用成功,验证通过
//我方的XML数据
Document doc = new Document(File);
Element root = new Element("root");
doc.setRootElement(root);
//第三方返回的XML数据
String xml = getThirdInterfaceXML();
StringReader sr = new StringReader(xml);
Document thirdDoc= builder.build(sr);
Element thirdRoot= thirdDoc.getRootElement();
//由于root中的parent不为空,上层节点invoke addContent时如果被添加的element中的parent不为空,则抛出异常addNode失败,所 以此时应该清空parent
Parent p = thirdRoot.getParent();
p.removeContent(thirdRoot);
必须编写以上两行代码,否则由于thirdDoc和thirdRoot之间存在父子关系,而我们调用addContent代码时,JDOM会判断parent如果不为空,则直接抛出异常org.jdom.IllegalAddException: The element "*******" could not be added as the root of the document: The Content already has an existing parent document
最后调用代码
root.addContent(thirdRoot);
调用成功,验证通过
相关文章推荐
- MyBatis第三种方式,xml和接口的结合,以及如何获得插入数据的返回参数、传入空的参数
- Jdom嵌入第三方XML数据的一个问题
- php中xml数据接口如何生成及调用
- java中用jdom 如何创建xml文档/将数据写入XML中
- Web前端 测试数据接口url,如何post一个XML字符串,点击保存就可以保存到数据库
- php中xml数据接口如何生成及调用
- PHP如何自动识别第三方Restful API的内容,自动渲染成 json、xml、html、serialize、csv、php等数据
- java中用jdom 如何创建xml文档/将数据写入XML中
- 如何调用并解析调用远程接口返回的xml数据
- java中用jdom 如何创建xml文档/将数据写入XML中
- java中用jdom 如何创建xml文档/将数据写入XML中
- Java接收Cordys中webservice接口的返回数据并解析xml获取相应节点数据
- 使用jdom操作xml数据,生成含Jtree的applet(转载 Jagie 原创 )
- Silverlight制作一个简单的菜单1-用到的知识讲解 xml数据读取,事件如何传递参数
- PHP接口数据的封装XML和JSON
- sencha touch 1.1中如何不用proxy 获得wcf传入的jsonp数据
- C#程序中:如何修改xml文件中的节点(数据)
- IT SQL:足迹第十四步了解大数据(如何在mapper包下XML文件中书写SQL语句)
- Servlet如何获取ajax中以json格式传入的数据?
- [转] 如何安全地嵌入第三方js – FBML/caja/sandbox/ADsafe简介