xmlParseCharRef:无效的xmlChar值为0

时间:2015-05-13 13:50:53

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

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

  

此页面包含以下错误:

     第40行第101行的

错误: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 IS中形成的XML:

<?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>

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

1 个答案:

答案 0 :(得分:1)

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

要解决此错误,您需要更换&amp;在&amp;的以下行中,它是“&amp;”的有效表示XML中的字符。

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

应该成为:

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

这很不幸,但你不能总是相信其他系统的XML输出会正确形成,所以要么检测它或清理它的一些逻辑总是谨慎的。