gpt4 book ai didi

.net - "Token Text in state EndRootElement would result in an invalid XML document"

转载 作者:数据小太阳 更新时间:2023-10-29 01:55:50 24 4
gpt4 key购买 nike

我看到这条异常消息来自 XslCompiledTransform.Transform(),但在处理异常之后,XSL 转换似乎仍然成功。完整的异常消息是:

Token Text in state EndRootElement would result in an invalid XML document. Make sure that the ConformanceLevel setting is set to ConformanceLevel.Fragment or ConformanceLevel.Auto if you want to write an XML fragment.

样式表如下所示:

<xsl:stylesheet version="1.0" xmlns:ext="ext:extensions" xmlns:f="http://schemas.foo.com/FOAMSchema">
<xsl:template match="/Root/Documents/PO/DROPSHIP">
<Transactions>
<Transaction>
<f:partnerTransmission>
<transmission_id>
<xsl:value-of select="ext:NewGUID()"/>
</transmission_id>
<partner_code>
<xsl:value-of select="/Root/@PartnerCode"/>
</partner_code>
<control_nbr>
<xsl:value-of select="@GS_CNTRL_NUM"/>
</control_nbr>
<creationTime>
<xsl:value-of select="ext:ConvertToStandardDateTime(@DATE,@TIME,'ISO8601Basic')"/>
</creationTime>
<direction>I</direction>
<messageCount>
<xsl:value-of select="count(ORDERS/ORDER)"/>
</messageCount>
<syntax>XML</syntax>
<format>BARBAZ</format>
<deliveryMethod>FTP</deliveryMethod>
</f:partnerTransmission>
</Transaction>
</Transactions>
</xsl:template>
</xsl:stylesheet>

生成的 XML 如下所示:

<Transactions xmlns="http://schemas.foo.com/IntegrationProfile" xmlns:ext="ext:extensions">
<Transaction>
<f:partnerTransmission xmlns:f="http://schemas.foo.com/FOAMSchema">
<transmission_id>a5e0ec76-6c24-426b-9eb5-aef9c45d913f</transmission_id>
<partner_code>VN000033</partner_code>
<control_nbr>650</control_nbr>
<creationTime>9/27/2008 12:51:00 AM</creationTime>
<direction>I</direction>
<messageCount>2</messageCount>
<syntax>XML</syntax>
<format>BARBAZ</format>
<deliveryMethod>FTP</deliveryMethod>
</f:partnerTransmission>
</Transaction>
</Transactions>

以上是我捕获并忽略异常时得到的结果。

我一直没能找到设置 ConformanceLevel 的方法(该属性是只读的),但同时我也不认为这里应该有问题。

我的输出是否构成 XML 片段?我是否遗漏了样式表中的某些内容?

最佳答案

异常试图告诉您,您试图在根元素的关闭元素之后输出文本。您的输出看起来正常的原因是异常阻止生成无效的 XML。

原因很简单:您没有文档根的转换。因此,执行默认转换。这些会将所有元素的文本内容输出为文本节点。

添加

<xsl:template match="/">
<xsl:apply-templates select="/Root/Documents/PO/DROPSHIP"/>
</xsl:template>

关于.net - "Token Text in state EndRootElement would result in an invalid XML document",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/209554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com