我想为std::atomic
标签解析CDATA块内的HTML,并在单独的表格行中输出每个HTML。但是我还不太清楚,想知道是否有人能够帮助我?
我一直试图解析HTML,但是无法弄清楚如何解析HTML,而不能仅仅将其视为字符数据。我很确定我无法使用XSL 1.0做到这一点,如果需要的话我可以使用2.0。
XML
<p>
XSL
<XML_FILE>
<NOTE>
<TEXT TITLE="TEST">
<![CDATA[<p>first p tag and <strong>bold</strong></p><p>second p tag and <u>underline</u></p>]]>
</TEXT>
</NOTE>
</XML_FILE>
输出
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="NOTE">
<div class="tableWrapper">
<table class="body">
<xsl:apply-templates select="TEXT"/>
</table>
</div>
</xsl:template>
<xsl:template match="TEXT">
<xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:template>
</xsl:stylesheet>
所需的输出
<div class="tableWrapper">
<table class="body"><p>first p tag and <strong>bold</strong></p><p>second p tag and <u>underline</u></p></table>
</div>
提供所需输出的最终样式表
<div class="tableWrapper">
<table class="body">
<tr><td><p>first p tag and <strong>bold</strong></p></td></tr>
<tr><td><p>second p tag and <u>underline</u></p></td></tr>
</table>
</div>
答案 0 :(得分:2)
XSLT 3.0具有功能parse-xml-fragment()
,可以解决此问题。
在XSLT的早期版本中没有什么等效的方法,尽管您可能会找到可以帮助您的供应商扩展。大多数处理器都允许您编写自己的外部函数,可以从XSLT代码中调用这些函数,并且可以编写将CDATA内容传递给外部XML解析器以转换为树形结构的函数。