我将文本转换(其中还包含其他文本不仅是一个超链接),以超链接使用下列内容:
逃逸内XSLT的HTML标签:值的XML文档元素中选择
<xsl:value-of
select="replace(AUTHOR_CONTACT_INFORMATION,
'([email protected])',
'<a href="$1">$1</a>')"/>
XML来源:
<AUTHOR_CONTACT_INFORMATION>Plugin author can be reached at [email protected] for his email.</AUTHOR_CONTACT_INFORMATION>
不幸的是,我无法逃脱的HREF使用的 '<' & '>' 标签。我的XSLT处理器是Qt4的QXmlQuery类。看起来它不支持上述表达式中的“disable-output-escaping”属性,我似乎无法找到任何其他方式,而不是手动分析最终输出并将每个'& lt'&'& gt'与'<'&'>'使用C++代码。
PS:无法得到'analyze-string'在qt中工作。它只是返回空字符串。 Refered到http://www.dpawson.co.uk/xsl/rev2/regex2.html问题3和使用下列内容:
<xsl:analyze-string select="AUTHOR_CONTACT_INFORMATION" regex="([email protected])">
<xsl:matching-substring>
<a href="{.}"><xsl:value-of select="." /></a>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="." />
</xsl:non-matching-substring>
</xsl:analyze-string>
以上工作正常“的Altova XMLSpy的”究竟在做我想要的。但是在Qt4中,输出有空字符串(为了更准确,我的<td>标签在这个表达式也神秘地消失在输出之前,很奇怪)。 Qt4文档说它的处理器支持'xsl:analyze-string'。任何人在Qt中都有一个'xsl:analyze-string'的工作示例?
Qt4文档说它的处理器不支持'xsl:character-map',所以没有意义去那里。
没有'xsl:analyze-string'的工作我回到原来的'replace()'。 '(这里的正则表达式)'
<xsl:value-of select="replace(AUTHOR_CONTACT_INFORMATION,
,'<一个 :
-Sanjeev
我不好2.0,但也可以是[XSL:字符映射(http://www.w3.org/TR/xslt20/#dt-character-map )可能会有所帮助。 – Flack 2011-02-23 07:39:10
您不能通过像这样生成'<'来创建标签。你需要输出一个实际的标签(即'(regex match)'。 – Flynn1179 2011-02-23 09:54:40
)你的输入是什么,你想要创建什么输出?可能是'xsl:analyze-string' http://www.w3.org/TR/xslt20 /#analyze-string可以提供帮助,如果你的目标是用正则表达式解析纯文本,在输出中建立一个链接元素。 – 2011-02-23 11:15:04