剥离一些xml文档的标签

时间:2011-06-21 06:11:27

标签: java xml parsing

我有一个xml doc,如下所示。

<data>
     <employee>
       <moretag> may or may not contain inner tag and attributes</moretag>
       <somemore>  may contain inner tags</somemore>
     </employee>
</data>

我想要如下操作

 <employee>
       <moretag> may or may not contain inner tag and attributes</moretag>
       <somemore>  may contain inner tags</somemore>
  </employee>

我想剥离data tags。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

您可以使用jdom

InputStream is = new FileInputStream(xmlFileName);
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
Document doc = new SAXBuilder().build(isr);

Element data = doc.getRootElement();
Element employee = data.getChild("employee");

XMLOutputter xmlOut = new XMLOutputter(Format.getPrettyFormat());
xmlOut.output(employee, System.out);

答案 1 :(得分:1)

使用XSLT

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
  <xsl:output method="xml" indent="yes"/>
  <xsl:template match="data">
    <xsl:copy-of select="child::node()" />
  </xsl:template>
</xsl:stylesheet>

答案 2 :(得分:0)

你不能简单地剥离这样的节点。

您倾向于实现的简单逻辑是您复制了根节点的firstChild,即用它替换根节点。

P.S。在根节点下只有一个孩子。