我正在编写从一个 XML 模式到另一个 XML 模式的 XSLT 数据映射。目标模式有一个字符串字段,其中包含原始 XML 的副本。我知道我必须将 XML 中的控制字符转换为<
和>
. 我已经做到了。我遇到的问题是 XML 中的数据也有<
,也有>
。这会导致问题,因为我将 XML 发送到 WCF-SQL 适配器,并且当它<
在我的数据中命中时,它会尝试将其转换为<
导致 XML 验证失败。
这是我的 XSLT 的一个片段:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="*" mode="serialize">
<xsl:text><</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>></xsl:text>
<xsl:apply-templates mode="serialize"/>
<xsl:text></</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>></xsl:text>
</xsl:template>
<xsl:template match="/">
<proc_Insert xmlns="http://schemas.microsoft.com/Sql/2008/05/TypedProcedures/dbo">
<StagingXML>
<xsl:variable name="nodestring">
<xsl:apply-templates select="*" mode="serialize"/>
</xsl:variable>
<xsl:value-of select="$nodestring"/>
</StagingXML>
</proc_Insert>
</xsl:template>
</xsl:stylesheet>