您的位置:首页 > 其它

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);

  调用成功,验证通过
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: