我正在尝试创建一个样式表以将<body>
元素复制到输出并隐式删除所有其他元素。
资源:
<!-- language: lang-xml -->
<?xml version="1.0" encoding="UTF-8"?>
<document>
<info>trial</info>
<style>unknown</style>
<body>
<section>
<p>para 1</p>
<p>para 2</p>
</section>
</body>
</document>
期望的输出:
<!-- language: lang-xml -->
<?xml version="1.0" encoding="UTF-8"?>
<document>
<body>
<section>
<p>para 1</p>
<p>para 2</p>
</section>
</body>
</document>
XSLT:
<!-- language: lang-xsl -->
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="node()[not(descendant-or-self::body)]"/>
</xsl:stylesheet>
上述 XSLT 的输出:
<!-- language: lang-xml -->
<?xml version="1.0" encoding="UTF-8"?>
<document>
<body/>
</document>
Ps 我是 XSLT 的新手。如果您能解释您的解决方案并为我指出一个合适的资源来学习 xpath 和 xslt 1.0,那将是一个救命稻草!