【问题标题】:xmlParseCharRef: invalid xmlChar value 0xmlParseCharRef:无效的 xmlChar 值 0
【发布时间】:2015-07-24 20:44:24
【问题描述】:

每当我使用带有一些输入的谷歌浏览器将请求传递给网络服务网络方法时,它都会给我以下响应:

此页面包含以下错误:

第 101 行第 40 列的错误:xmlParseCharRef:无效的 xmlChar 值 0

下面是第一个错误之前的页面渲染。

840092 10777579 VER 1900-12-31T00:00:00 SYS EMV AKT VIR Arnar Mar Jonsson         Arnar's Bud- og Landbrugscervice 25251628 910673 AKT 2009-10-02T16:21:37 J 2003-    09-18T18:59:40 2399-12-31T00:00:00 N DK 6621 Gesten Gyvelvej 11 0 VIR 2011-11-    05T05:46:03 Arnar's Bud- og Landbrugscervice VIR NKA 2010-06-26T19:12:27 Arnars     Bud- & Landbrugsservice VIR NKA 2010-01-18T06:35:48 Arnar's Bud- og     Landbrugscervice VIR NKA 2009-10-23T06:25:55 Arnar's Bud- og Landbrugscervice v/     Arnar Mar Jonsson VIR NKI 2009-10-05T12:41:28 Arnar'S Bud- og Landbrugscervice V     /Arnar Mar Jonsson VIR NKA 2009-10-05T12:41:28 Arnar'S Bud- og Landbrugscervice     V /Arnar Mar Jonsson v/ Arnar Mar Jon VIR NKI 2004-05-04T15:57:52 Arnar Mar     Jonsson VIR NTI 2004-04-30T17:01:15

它在 Internet Explorer 中以正确的方式呈现。 IE中形成的XML IS:

<?xml version="1.0" encoding="utf-8" ?> 
<IdCardSearchResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-    instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"     xmlns="http://experiannordic.com/">
  <IdCardArray>
    <IdCard>
      <IdCardNo>5840092</IdCardNo> 
      <ConnectedIdCardNo>10777579</ConnectedIdCardNo> 
      <NameProtectionFromDate xsi:nil="true" /> 
      <VerificationType>VER</VerificationType> 
      <VerificationDate>1900-12-31T00:00:00</VerificationDate> 
      <VerificationInit>SYS</VerificationInit> 
      <IdCardType>EMV</IdCardType> 
      <IdCardStatus>AKT</IdCardStatus> 
      <DataSource>VIR</DataSource> 
      <PersonData>
        <FirstName>Arnar</FirstName> 
        <LastName>Mar Jonsson</LastName> 
        <DateOfBirth xsi:nil="true" /> 
        <CprStatusDate xsi:nil="true" /> 
      </PersonData>
      <CompanyData>
        <CompanyName>Arnar's Bud- og Landbrugscervice</CompanyName> 
        <CvrNumber>25251628</CvrNumber> 
        <KobNumber>910673</KobNumber> 
        <KobStatus>AKT</KobStatus> 
        <KobAjourDate>2009-10-02T16:21:37</KobAjourDate> 
      </CompanyData>
      <AddressData>
        <CurrentAddress>J</CurrentAddress> 
        <AddressFromDate>2003-09-18T18:59:40</AddressFromDate> 
        <AddressToDate>2399-12-31T00:00:00</AddressToDate> 
        <ForeignAddress>N</ForeignAddress> 
        <CountryCode>DK</CountryCode> 
        <PostalCode>6621</PostalCode> 
        <PostalDistrict>Gesten</PostalDistrict> 
        <Street>Gyvelvej</Street> 
        <Number>11</Number> 
        <NumberTo>0</NumberTo> 
        <SourceType>VIR</SourceType> 
      </AddressData>
      <DateOfBirth xsi:nil="true" /> 
      <CompanyName>Arnar's Bud- og Landbrugscervice</CompanyName> 
      <Source>VIR</Source> 
      <Type>NKA</Type> 
    </NameData>
    <NameData>
      <CompanyName>Arnars Bud- & Landbrugsservice</CompanyName> 
      <Source>VIR</Source> 
      <Type>NKA</Type> 
    </NameData>
    <NameData>
      <CompanyName>Arnar's Bud- og Landbrugscervice</CompanyName> 
      <CompanyName>Arnar'S Bud- og Landbrugscervice V /Arnar Mar      Jonsson</CompanyName> 
      <CompanyName>Arnar'S Bud- og Landbrugscervice V /Arnar Mar Jonsson v/ Arnar Mar Jon</CompanyName>
      <CompanyName>Arnar's Budservice v/ Arnar Mar Jonsson</CompanyName> 
      <NameToDate xsi:nil="true" /> 
      <DateOfBirth xsi:nil="true" /> 
      <CompanyName>Arnar's Budservice</CompanyName> 
      <Source>VIR</Source> 
      <Type>NKA</Type> 
    </NameData>
      <AddressToDate xsi:nil="true" /> 
      <ForeignAddress>N</ForeignAddress> 
      <CountryCode>DK</CountryCode> 
      <PostalCode>6000</PostalCode> 
      <PostalDistrict>Kolding</PostalDistrict> 
      <Street>Tvedvej</Street> 
      <Number>20</Number> 
      <NumberTo>0</NumberTo> 
      <SourceType>VIR</SourceType> 
      </AddressData>
      </AddressArray>
      <IdCardRelationArray>
        <IdCardRelationData>
          <IdCardNumberFrom>5840092</IdCardNumberFrom> 
          <RelationType>EMV2PER</RelationType> 
          <IdCardNumberTo>10777579</IdCardNumberTo> 
          <IdCardRelationDate>2004-08-14T14:18:27</IdCardRelationDate> 
          <IdCardRelationChangeDate xsi:nil="true" /> 
        </IdCardRelationData>
      </IdCardRelationArray>
    </IdCard>
  </IdCardArray>
</IdCardSearchResponse>

为什么谷歌浏览器中没有显示来自该请求的数据??

【问题讨论】:

  • 从 VS 菜单:项目:添加新项目:XML 文件粘贴 XML 数据。 VS 会给你一个错误列表。确保在 VS 中打开查看错误窗口。您有不匹配的打开/关闭标签。
  • 您不能在以下行中使用“&”:Arnars Bud- & Landbrugsservice。请参阅以下网页:en.wikipedia.org/wiki/…

标签: c# xml web-services xml-parsing


【解决方案1】:

不同的浏览器有不同的解析引擎和处理无效 XML 的方式。在这种情况下,Chrome (正确地)比 IE 更严格。

要修复此错误,您需要将以下行中的 & 替换为 &amp;amp;,这是 XML 中“&”字符的有效表示。

<CompanyName>Arnars Bud- & Landbrugsservice</CompanyName> 

应该变成:

<CompanyName>Arnars Bud- &amp; Landbrugsservice</CompanyName>

很不幸,但您不能总是相信来自其他系统的 XML 输出会正确形成,因此一些逻辑来检测或清理它总是谨慎的。

【讨论】:

    猜你喜欢
    • 2018-10-18
    • 1970-01-01
    • 2021-10-30
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多