如何从xml文档中删除根元素?

时间:2016-10-04 13:39:51

标签: java xml

是否有可能删除xml文件的根元素? 我怎么能用Java做到这一点? 我的xml文件如下所示:

<root>
<body>
....
</body>
</root>

我已经尝试用Sax解析它,好吧我实现了这个,但我发现SAX不允许将代码写入xml文件(我读到这很难)。 您是否知道如何从根标签获取内容并将其写入以body为父级的新文档?

2 个答案:

答案 0 :(得分:0)

解决问题的一种方法是使用GitHub上提供的Scilca XML Progession软件包解析文档。您可以获取子元素的结构,然后保存它。

import org.scilca.sxp.*;

XMLConnection xc = new XMLConnection("@filepath");
List<Node> allBodies = xc.searchMatches("body"); // as body is second tag it will be first in list
Node neededNode = allBodies.get(0);

//Writing Portion

Document data = new Document(neededNode);
XMLWriter xw = data.getWriter();
xw.saveXML("@filepath2");

答案 1 :(得分:-1)

如果 需要删除<root></root>标记,则无需使用SAX等解析xml文件。只需将其解析为String并用空字符串替换标记。

一个非常基本的例子可能是:

  String str = "<root><body></body></root>";

  String str2 = str.replace("<root>", "").replace("</root>", "");
  System.out.println(str2);