java将多个XML标记重命名为不同的名称
我正在寻找转换为其他格式的标签,但它是只转换父标签,而不是子标签。 我想在不改变结构的情况下变换标记
例如:
<section name="ABC">
<section name="123">
<p>Data</p>
<p>Data</p>
<p>Data</p>
</section>
<section name="456">
<table>
<tr>
<td><p>Data</p></td>
<td><p>Data</p></td>
<td><p>Data</p></td>
</tr>
</table>
</section>
<section name="232">
<bold><p>Data</p></bold>
</section>
</section>
到
<div class="ABC">
<div class="123">
<h1>Data</h1>
<h1>Data</h1>
<h1>Data</h1>
</div>
<div class="456">
<table>
<tr>
<td><h1>Data</h1></td>
<td><h1>Data</h1></td>
<td><h1>Data</h1></td>
</tr>
</table>
</div>
<div class="232">
<bold><h1>Data</h1></bold>
</div>
</div>
这就是我在XSLT转换中所写的内容
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:template match="section"><div><xsl:apply-templates select="node()"/></div></xsl:template>
<xsl:template match="p"><p><xsl:apply-templates select="node()"/></p></xsl:template>
<xsl:template match="table"><table><xsl:apply-templates select="node()"/></table></xsl:template>
<xsl:template match="row"><tr><xsl:apply-templates select="node()"/></tr></xsl:template>
<xsl:template match="cell"><td><xsl:apply-templates select="node()"/></td></xsl:template>
<xsl:template match="image"><img><xsl:apply-templates select="node()"/></img></xsl:template>
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
每件事都很好,但所有属性都在计时,我只得到标记,但没有属性值。我希望应用所有要保留的属性,并单独更改特定属性的名称
# 1 楼答案
这应该可以做到: