加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

.net – “状态EndRootElement中的令牌文本将导致无效的XML文档

发布时间:2020-12-16 23:14:40 所属栏目:百科 来源:网络整理
导读:我看到这个异常消息来自XslCompiledTransform.Transform(),但在处理异常后,XSL转换似乎仍然成功.完整的异常消息是: Token Text in state EndRootElement would result in an invalid XML document. Make sure that the ConformanceLevel setting is set to
我看到这个异常消息来自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片段?我在样式表中遗漏了什么吗?

解决方法

例外是试图告诉您已尝试在根元素的close元素之后输出文本.输出看起来正常的原因是该异常阻止了生成无效的XML.

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读