我將文本轉換(其中還包含其他文本不僅是一個超鏈接),以超鏈接使用下列內容:
逃逸內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