【发布时间】:2019-03-03 20:24:21
【问题描述】:
我有一个包含以下动态 xml 的参数“abc”:
<?xml version="1.0" encoding="UTF-8" ?>
<hello type="PROCESS"><process urn="hello"><object></object><object></object></process></hello>
我需要一个 XSLT 来使用属性“abc”并创建所需的 xml。
我尝试过的 XSLT。
<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://tempuri.org/">
<xsl:param name="abc"/>
<xsl:template match="/">
<xsl:value-of select="normalize-space($abc)" disable-output-escaping="yes" />
</xsl:template>
应用此 XSLT 时收到错误:异常类型 System.Xml.XmlException:意外的 XML 声明。 XML 声明必须是文档中的第一个节点,并且之前不允许出现空白字符。
所需的xml
<?xml version="1.0" encoding="UTF-8" ?>
<hello type="PROCESS"><process urn="hello"><object></object><object></object></process></hello>
【问题讨论】:
-
肯定有错误,因为你的Desired.xml和输入的一模一样。还请发布您已经尝试过的内容并描述无效的内容。
-
但我的输入在属性“abc”中。我需要使用 xslt 将其转换为所需的 xml。
-
所以你真的想输出与给定完全相同的 XML?
-
您在 XML 声明 处理指令 中缺少尾随
?。它应该如下所示:<?xml version="1.0" encoding="UTF-8" ?>。 处理说明以<?开头,以?>结尾。 -
请显示最少但完整的 C# 代码以重现错误。