0

xslt1.0 の文字列からブレーク タグを削除しようとしています。translate(s,'<br>','') を使用してみましたが、s は文字列値ですが、太字のタグも削除されます。テンプレートも試しましたが、うまくいきませんでした。私の質問は、ブレークタグのみを削除する方法です。

したがって、文字列:

<b>trying</b> to remove <br> tags only <br> and not <b>bold tags</b>

次のように解析されます。

<b>trying</b> to remove tags only and not <b>bold tags</b>
4

1 に答える 1

0

この XSLT:

    <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="node()|@*">
    <xsl:copy>
        <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
</xsl:template>

<xsl:template match=
    "br[not(@*|*|comment()|processing-instruction()) 
    and normalize-space()=''
    ]"/>
</xsl:stylesheet>

この整形式の有効な XML に適用されます。

<?xml version="1.0" encoding="UTF-8"?>
<list>
<b>trying</b> to remove <br/> tags only <br/> and not <b>bold tags</b>
</list>

次の結果が得られます。

<list>
<b>trying</b> to remove  tags only  and not <b>bold tags</b>
</list>

こちらの Dimitre のソリューションも参照してください: XSLT を介して XML から空のタグを削除する

于 2012-08-23T15:05:22.303 に答える