2014-06-30 83 views
0

我想刪除所有在xml文檔中使用java的命名空間,有沒有一種有效的方式來替代所有的方法呢?刪除除了replaceall以外的所有XML命名空間使用java

在此先感謝。 Sushma。

+0

是的,將XML解析爲對象樹,刪除命名空間並重新序列化XML。真的,那麼全部替換呢? – Smutje

+0

結果如何? – Smutje

+0

嗨,我是新來的java,你能簡單地解釋一下嗎? – Sushma

回答

1

使用正則表達式處理刪除名稱空間聲明可能是可行的,只要您不關心實際上不是名稱空間聲明(例如,在註釋或CDATA部分內)的匹配的小概率。從元素和屬性名稱中去除前綴​​更加棘手。爲什麼不使用XSLT輕鬆實現?它只是需要一個簡單的2規則的樣式表:

<xsl:template match="*"> 
    <xsl:element name="{local-name()}"> 
    <xsl:apply-templates select="*|@*"/> 
    </xsl:element> 
</xsl:template> 

<xsl:template match="@*"> 
    <xsl:attribute name="{local-name()}"> 
    <xsl:value-of select=."/> 
    </xsl:attribute> 
</xsl:template> 

,如果你發現你需要做的比這,例如更多您可以添加更多規則將名稱空間保留在xml:base或xsi:schemaLocation屬性上。