2011-06-21 102 views
0

我有一個XML文檔如下。剝離一些XML文檔標籤

<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我。如何能做到這一點,以剝離?

+0

你有偏好DOM VS SAX解析器? 你需要它作爲純文本還是作爲一個對象? – RonK

+0

文字,我更喜歡dom – akshay

+0

看起來Thor的答案就是你需要的。 – RonK

回答

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

你不能簡單地剝離這樣的一些節點。

你傾向於實現的簡單邏輯是你創建根節點firstChild的一個副本,並用它替換根節點。

P.S.你在根節點下只有一個孩子。

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>