应用标准XSLT复制模板
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
到JBoss AS 7 standalone.xml会导致参数丢失:
<?xml version="1.0" encoding="UTF-8"?><server xmlns="urn:jboss:domain:1.1">
<extensions>
<extension/>
<extension/>
而不是
<?xml version="1.0" encoding="UTF-8"?><server xmlns="urn:jboss:domain:1.1">
<extensions>
<extension module="org.jboss.as.clustering.infinispan"/>
<extension module="org.jboss.as.configadmin"/>
为什么呢? 我怎样才能复制一切?
XSLT转换由Maven XML插件完成。 整个模板:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ds="urn:jboss:domain:datasources:1.0"
xmlns="urn:jboss:domain:1.1"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="*|@*|node()">
<xsl:copy>
<xsl:apply-templates select="*|@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:2)
您的模板似乎工作正常。
我修改了它并且XML显示它正在工作:
<?xml version="1.0" encoding="UTF-8"?>
<server xmlns="urn:jboss:domain:1.1">
<extensions>
<extension module="org.jboss.as.clustering.infinispan"/>
<extension module="org.jboss.as.configadmin"/>
</extensions>
</server>
使用此XSL运行:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ds="urn:jboss:domain:datasources:1.0"
xmlns:so="urn:jboss:domain:1.1"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="*|@*|node()">
<xsl:copy>
<xsl:apply-templates select="*|@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="so:extension">
<xsl:copy>
<xsl:attribute name="testing">just for fun!!</xsl:attribute>
<xsl:copy-of select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
产地:
<?xml version="1.0"?>
<server xmlns="urn:jboss:domain:1.1">
<extensions>
<extension testing="just for fun!!" module="org.jboss.as.clustering.infinispan"/>
<extension testing="just for fun!!" module="org.jboss.as.configadmin"/>
</extensions>
</server>
这是原始XSL的输出运行:
<?xml version="1.0"?>
<server xmlns="urn:jboss:domain:1.1">
<extensions>
<extension module="org.jboss.as.clustering.infinispan"/>
<extension module="org.jboss.as.configadmin"/>
</extensions>
</server>
我下载了完整的JBoss standalone.xml,运行了你的XSL,这里是输入和输出XML的差异:
so zacharyyoung$ xsltproc so.xsl so.xml > output.xml
so zacharyyoung$ diff so.xml output.xml
1,2c1
< <?xml version='1.0' encoding='UTF-8'?>
<
---
> <?xml version="1.0"?>