<italic>a</italic>
が実際の文字列である限り、<文字には<
を使用できます。より大きい(>)はエスケープする必要はありません。
例:
サンプルXML入力
<test><![CDATA[<italic>a</italic>]]></test>
XSLT 2.0
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<xsl:analyze-string select="test" regex="<italic>([^<]+)</italic>">
<xsl:matching-substring>
<results>
<xsl:value-of select="regex-group(1)"/>
</results>
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:template>
</xsl:stylesheet>
XML出力:
<results>a</results>
http://stackoverflow.com/a/1732454/338803 – sje397
私は(\ <)(イタリック)(\ >))[a-z +](\ <)(イタリック)(\ /)(\ >)ですが、同じ結果です... xslt throwing error ... – atif