我有一个xml,如下所示:
<SampleData>
<SampleGroup>
<sectionLabel>Auto</sectionLabel>
<SampleContent>
<htmlContent><table border="1" cellpadding="1" cellspacing="1" style="width:500px"> <tbody> <tr> <td>sdf</td> <td>xc</td> </tr> <tr> <td>xcv</td> <td>axcv</td> </tr> <tr> <td>zxc</td> <td>asdasd</td> </tr> </tbody> </table></htmlContent>
<contentType>table</contentType>
</SampleContent>
</SampleGroup>
<SampleGroup>
<sectionLabel>Dexter</sectionLabel>
</SampleGroup>
</SampleData>
我的Xslts如下:
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" cdata-section- elements="sectionLabel htmlContent"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
上面的xslt将cdata添加到section标签标签中,但它没有添加到htmlcontent元素,因为它有html标签,但是如果我将纯文本放入htmlcontet,它会添加它们。
所以任何人都可以帮我解决这个问题。
感谢。
答案 0 :(得分:0)
这是正确的。 cdata-section-elements
的目的是指定输出中哪些元素的文本内容输出为CDATA,但您的身份转换不能输出{{1}内的任何文本} element,只有一个子htmlContent
元素。
如果您希望html内容变成文本,那么您需要一个样式表将元素序列化为文本(在其他SO问题中有这样的样式表的示例),然后您可以使用table
将该文本输出为CDATA。