这是我的示例文档
<a >
<b flag='foo'>
<c/>
<d/>
</b>
</a>
仅当 b 上的标志属性为“bar”时,我才希望删除“c”元素。即如果 flag='foo' 则不应删除“c”元素。我的电脑上目前没有 xsl 调试工具,也找不到显示 xslt 错误信息的在线工具,并且一直在http://xslttest.appspot.com/上运行以下测试 xsl 转换:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes" version="1.0" encoding="ISO-8859-1"/>
<!--Identity template to copy all content by default-->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:choose>
<xsl:when test="/a/b[@flag='bar']">
<xsl:template match="/a/b/c"/>
</xsl:when>
</xsl:choose>
</xsl:stylesheet>
当我运行它时,我得到错误:无法编译样式表。检测到 3 个错误。我正在寻求帮助 (1) 解决 xsl 代码的问题和 (2) 任何可以调试/测试 xsl 代码片段的 xsl jsfiddle 之类的东西。