我正在将XSLT数据映射从一个XML模式编写到另一个XML模式。目标模式有一个String字段,其中包含原始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>
答案 0 :(得分:0)