これが私のサンプルドキュメントです
<a >
<b flag='foo'>
<c/>
<d/>
</b>
</a>
bのフラグ属性が「bar」の場合にのみ「c」要素を削除しようとしています。つまり、flag ='foo'の場合、「c」要素は削除しないでください。現在、PCに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のようなものを探しています。