我想使用XSL将xml的片段存储到属性中。例如,我有以下xml
<a>
<b>
<c>test1</c>
<c>test2</c>
</b>
</a>
并希望得到这个结果(属性中的xml应该正确转义):
<a attr="<b><c>test1</c><c>test2</c></b>"/>
这可以通过使用XSL来实现吗?
答案 0 :(得分:1)
使用XSLT 3.0,有一个函数serialize-xml
,在早期版本中,您可以导入像http://lenzconsulting.com/xml-to-string/这样的模块然后编码
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:import href="xml-to-string.xsl"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="a">
<xsl:copy>
<xsl:attribute name="attr">
<xsl:apply-templates mode="xml-to-string"/>
</xsl:attribute>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>