反序列化XML文档

时间:2016-04-06 12:28:13

标签: c# xml deserialization

我有以下XML:

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfFolkbokforingspostTYPE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FolkbokforingspostTYPE>
    <Sekretessmarkering xsi:nil="true" />
    <Personpost>
      <PersonId>
        <PersonNr>235235263</PersonNr>
      </PersonId>
      <HanvisningsPersonNr xsi:nil="true" />
      <Namn>
        <Tilltalsnamnsmarkering>20</Tilltalsnamnsmarkering>
        <Fornamn>dsgsgdsd</Fornamn>
        <Mellannamn xsi:nil="true" />
        <Efternamn>sdgsdg</Efternamn>
        <Aviseringsnamn xsi:nil="true" />
      </Namn>
      <Folkbokforing>
        <Folkbokforingsdatum>20060512</Folkbokforingsdatum>
        <LanKod>25</LanKod>
        <KommunKod>14</KommunKod>
        <ForsamlingKod xsi:nil="true" />
        <Fastighetsbeteckning>gsdgsgds</Fastighetsbeteckning>
        <FiktivtNr>0</FiktivtNr>
      </Folkbokforing>
      <Adresser>
        <Folkbokforingsadress>
          <CareOf xsi:nil="true" />
          <Utdelningsadress1 xsi:nil="true" />
          <Utdelningsadress2>sgsdgs</Utdelningsadress2>
          <PostNr>325325</PostNr>
          <Postort>lalalal</Postort>
        </Folkbokforingsadress>
        <Riksnycklar>
          <FastighetsId>235</FastighetsId>
          <AdressplatsId>2355325</AdressplatsId>
          <LagenhetsId>35235</LagenhetsId>
        </Riksnycklar>
      </Adresser>
      <Fodelse>
        <HemortSverige>
          <FodelselanKod>25</FodelselanKod>
          <Fodelseforsamling>NEDERKALIX</Fodelseforsamling>
        </HemortSverige>
      </Fodelse>
      <Medborgarskap>
        <MedborgarskapslandKod>SE</MedborgarskapslandKod>
        <Medborgarskapsdatum>0</Medborgarskapsdatum>
      </Medborgarskap>
    </Personpost>
  </FolkbokforingspostTYPE>
</ArrayOfFolkbokforingspostTYPE>

并希望对其进行反序列化,但我没有得到它的价值。

这是反序列化类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;

namespace TESTMAPPNING2
{


        [XmlRoot("ArrayOfFolkbokforingspostTYPE")]
        public class Information
        {

            [XmlElement("Sekretessmarkering")]
            public string ProtectedIdentity
            {
                get;
                set;
            }
            [XmlElement("PersonNr")]
            public string PersonalIdentityNumber
            {
                get;
                set;
            }

            [XmlRoot("Personpost")]
            public class Personpost
            {
                [XmlRoot("PersonId")]
                public class PersonId
                {
                    [XmlElement("PersonNr")]
                    public string PersonalIdentityNumber
                    {
                        get;
                        set;
                    }


                }
                [XmlElement("HanvisningsPersonNr")]
                public string ReferedCivicRegistrationNumber
                {
                    get;
                    set;
                }
                [XmlRoot("Namn")]
                public class Namn
                {

                    [XmlElement("Tilltalsnamnsmarkering")]
                    public string GivenNameNumber
                    {
                        get;
                        set;
                    }

                    [XmlElement("Fornamn")]
                    public string FirstName
                    {
                        get;
                        set;
                    }

                    [XmlElement("Efternamn")]
                    public string LastName
                    {
                        get;
                        set;
                    }

                    [XmlElement("Aviseringsnamn")]
                    public string NotifyName
                    {
                        get;
                        set;
                    }

                }
                [XmlRoot("Folkbokforing")]
                public class Folkbokforing
                {
                    [XmlElement("Folkbokforingsdatum")]
                    public string NotifyName
                    {
                        get;
                        set;
                    }

                    [XmlElement("LanKod")]
                    public string NationalRegistrationCountyCode
                    {
                        get;
                        set;
                    }

                    [XmlElement("KommunKod")]
                    public string NationalRegistrationMunicipalityCode
                    {
                        get;
                        set;
                    }

                }
                [XmlRoot("Adresser")]
                public class Adresser
                {
                    [XmlRoot("Folkbokforingsadress")]
                    public class Folkbokforingsadress
                    {

                        [XmlElement("CareOf")]
                        public string NationalRegistrationCoAddress
                        {
                            get;
                            set;
                        }

                        [XmlElement("Utdelningsadress1")]
                        public string NationalRegistrationDistributionAddress1
                        {
                            get;
                            set;
                        }

                        [XmlElement("Utdelningsadress2")]
                        public string NationalRegistrationDistributionAddress2
                        {
                            get;
                            set;
                        }

                        [XmlElement("PostNr")]
                        public string NationalRegistrationPostCode
                        {
                            get;
                            set;
                        }

                        [XmlElement("Postort")]
                        public string NationalRegistrationCity
                        {
                            get;
                            set;
                        }
                    }
                }
                [XmlRoot("Fodelse")]
                public class Fodelse
                {
                    [XmlRoot("HemortSverige")]
                    public class HemortSverige
                    {
                        [XmlElement("FodelselanKod")]
                        public string BirthCountyCode
                        {
                            get;
                            set;
                        }

                        [XmlElement("Fodelseforsamling")]
                        public string BirthParish
                        {
                            get;
                            set;
                        }
                    }
                }
                [XmlRoot("Medborgarskap")]
                public class Medborgarskap
                {
                    [XmlElement("MedborgarskapslandKod")]
                    public string CitizenshipCode
                    {
                        get;
                        set;
                    }

                    [XmlElement("Medborgarskapsdatum")]
                    public string CitizenshipDate
                    {
                        get;
                        set;
                    }
                }

            }

        }
    }

这是Main class:

namespace TESTMAPPNING2
{
    public class Program
    {
       public static void Main(string[] args)
        {
            Test();
        }


        public static void Test()
    {
        try
        {
            XmlSerializer XmlSerializer = new XmlSerializer(typeof(Information));
            StreamReader sr = new StreamReader("navetout.xml");
            Information information = (Information)XmlSerializer.Deserialize(sr);
            Console.WriteLine("Information:");
            Console.WriteLine("Personnummer:" + information.PersonalIdentityNumber);
            Console.ReadKey(); 
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
            Console.ReadKey();
        }

    }

我正在尝试显示PersonalIdentityNumber只是为了尝试一下,但它没有得到它的价值。所有控制台都是打印

  

信息:

     

Personnummer:

为什么不在XML中获得PersonalIdentityNumber?(PersonNr)的值。

更新2

我的整个XML:

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfFolkbokforingspostTYPE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <PersonNr>194903188953</PersonNr>
<FolkbokforingspostTYPE>
    <Sekretessmarkering xsi:nil="true" />
    <Personpost>
      <PersonId>
        <PersonNr>194903188953</PersonNr>
      </PersonId>
      <HanvisningsPersonNr xsi:nil="true" />
      <Namn>
        <Tilltalsnamnsmarkering>20</Tilltalsnamnsmarkering>
        <Fornamn>Erik Lennart</Fornamn>
        <Mellannamn xsi:nil="true" />
        <Efternamn>Enberg</Efternamn>
        <Aviseringsnamn xsi:nil="true" />
      </Namn>
      <Folkbokforing>
        <Folkbokforingsdatum>20060512</Folkbokforingsdatum>
        <LanKod>25</LanKod>
        <KommunKod>14</KommunKod>
        <ForsamlingKod xsi:nil="true" />
        <Fastighetsbeteckning>PÅLÄNGE 6:38</Fastighetsbeteckning>
        <FiktivtNr>0</FiktivtNr>
      </Folkbokforing>
      <Adresser>
        <Folkbokforingsadress>
          <CareOf xsi:nil="true" />
          <Utdelningsadress1 xsi:nil="true" />
          <Utdelningsadress2>STORVÄGEN 65</Utdelningsadress2>
          <PostNr>95204</PostNr>
          <Postort>PÅLÄNG</Postort>
        </Folkbokforingsadress>
        <Riksnycklar>
          <FastighetsId>250015520</FastighetsId>
          <AdressplatsId>2416233</AdressplatsId>
          <LagenhetsId>22143838</LagenhetsId>
        </Riksnycklar>
      </Adresser>
      <Fodelse>
        <HemortSverige>
          <FodelselanKod>25</FodelselanKod>
          <Fodelseforsamling>NEDERKALIX</Fodelseforsamling>
        </HemortSverige>
      </Fodelse>
      <Medborgarskap>
        <MedborgarskapslandKod>SE</MedborgarskapslandKod>
        <Medborgarskapsdatum>0</Medborgarskapsdatum>
      </Medborgarskap>
    </Personpost>
  </FolkbokforingspostTYPE>
  <FolkbokforingspostTYPE>
    <Sekretessmarkering xsi:nil="true" />
    <Personpost>
      <PersonId>
        <TilldelatPersonNrSamordningsNr>195405869370</TilldelatPersonNrSamordningsNr>
      </PersonId>
      <HanvisningsPersonNr xsi:nil="true" />
      <Namn>
        <Fornamn styrkt="J">Eduardo Metran</Fornamn>
        <Mellannamn xsi:nil="true" />
        <Efternamn styrkt="J">Garcia</Efternamn>
        <Aviseringsnamn xsi:nil="true" />
      </Namn>
      <Folkbokforing>
        <Folkbokforingsdatum xsi:nil="true" />
        <LanKod>14</LanKod>
        <KommunKod xsi:nil="true" />
        <ForsamlingKod xsi:nil="true" />
        <Fastighetsbeteckning xsi:nil="true" />
      </Folkbokforing>
      <Adresser />
      <Fodelse>
        <OrtUtlandet>
          <FodelseortUtland styrkt="J">Sta Cruz Zambales</FodelseortUtland>
          <Fodelseland>FILIPPINERNA</Fodelseland>
        </OrtUtlandet>
      </Fodelse>
      <Medborgarskap>
        <MedborgarskapslandKod styrkt="J">PH</MedborgarskapslandKod>
        <Medborgarskapsdatum>0</Medborgarskapsdatum>
      </Medborgarskap>
    </Personpost>
  </FolkbokforingspostTYPE>
  <FolkbokforingspostTYPE>
    <Sekretessmarkering xsi:nil="true" />
    <Personpost>
      <PersonId>
        <PersonNr>199103274545</PersonNr>
      </PersonId>
      <HanvisningsPersonNr xsi:nil="true" />
      <Namn>
        <Fornamn>Sarah Dina Tomasdotter</Fornamn>
        <Mellannamn xsi:nil="true" />
        <Efternamn>Själander</Efternamn>
        <Aviseringsnamn xsi:nil="true" />
      </Namn>
      <Folkbokforing>
        <Folkbokforingsdatum>20120123</Folkbokforingsdatum>
        <LanKod>01</LanKod>
        <KommunKod>80</KommunKod>
        <ForsamlingKod xsi:nil="true" />
        <Fastighetsbeteckning>SLALOMSVÄNGEN 3</Fastighetsbeteckning>
        <FiktivtNr>0</FiktivtNr>
      </Folkbokforing>
      <Adresser>
        <Folkbokforingsadress>
          <CareOf xsi:nil="true" />
          <Utdelningsadress1 xsi:nil="true" />
          <Utdelningsadress2>STÖRTLOPPSVÄGEN 18 LGH 1102</Utdelningsadress2>
          <PostNr>12947</PostNr>
          <Postort>HÄGERSTEN</Postort>
        </Folkbokforingsadress>
        <Riksnycklar>
          <FastighetsId>010114422</FastighetsId>
          <AdressplatsId>1463872</AdressplatsId>
          <LagenhetsId>24865059</LagenhetsId>
        </Riksnycklar>
      </Adresser>
      <Fodelse>
        <HemortSverige>
          <FodelselanKod>01</FodelselanKod>
          <Fodelseforsamling>SPÅNGA</Fodelseforsamling>
        </HemortSverige>
      </Fodelse>
      <Medborgarskap>
        <MedborgarskapslandKod>SE</MedborgarskapslandKod>
        <Medborgarskapsdatum>0</Medborgarskapsdatum>
      </Medborgarskap>
    </Personpost>
  </FolkbokforingspostTYPE>
  <FolkbokforingspostTYPE>
    <Sekretessmarkering xsi:nil="true" />
    <Personpost>
      <PersonId>
        <PersonNr>197111041617</PersonNr>
      </PersonId>
      <HanvisningsPersonNr xsi:nil="true" />
      <Namn>
        <Tilltalsnamnsmarkering>10</Tilltalsnamnsmarkering>
        <Fornamn>Kristian Fredrik</Fornamn>
        <Mellannamn xsi:nil="true" />
        <Efternamn>Lahtinen</Efternamn>
        <Aviseringsnamn xsi:nil="true" />
      </Namn>
      <Folkbokforing>
        <Folkbokforingsdatum>20110524</Folkbokforingsdatum>
        <LanKod>04</LanKod>
        <KommunKod>84</KommunKod>
        <ForsamlingKod xsi:nil="true" />
        <Fastighetsbeteckning>HÖJDHOPPAREN 3</Fastighetsbeteckning>
        <FiktivtNr>0</FiktivtNr>
      </Folkbokforing>
      <Adresser>
        <Folkbokforingsadress>
          <CareOf xsi:nil="true" />
          <Utdelningsadress1 xsi:nil="true" />
          <Utdelningsadress2>SÄBYGATAN 22 C LGH 1102</Utdelningsadress2>
          <PostNr>64434</PostNr>
          <Postort>TORSHÄLLA</Postort>
        </Folkbokforingsadress>
        <Riksnycklar>
          <FastighetsId>040044272</FastighetsId>
          <AdressplatsId>1982769</AdressplatsId>
          <LagenhetsId>22271866</LagenhetsId>
        </Riksnycklar>
      </Adresser>
      <Fodelse>
        <HemortSverige>
          <FodelselanKod>04</FodelselanKod>
          <Fodelseforsamling>TORSHÄLLA</Fodelseforsamling>
        </HemortSverige>
      </Fodelse>
      <Medborgarskap>
        <MedborgarskapslandKod>FI</MedborgarskapslandKod>
        <Medborgarskapsdatum>0</Medborgarskapsdatum>
      </Medborgarskap>
    </Personpost>
  </FolkbokforingspostTYPE>
  <FolkbokforingspostTYPE>
    <Sekretessmarkering xsi:nil="true" />
    <Personpost>
      <PersonId>
        <PersonNr>198208268220</PersonNr>
      </PersonId>
      <HanvisningsPersonNr xsi:nil="true" />
      <Namn>
        <Tilltalsnamnsmarkering>10</Tilltalsnamnsmarkering>
        <Fornamn>Ida Margareta</Fornamn>
        <Mellannamn xsi:nil="true" />
        <Efternamn>Kruth</Efternamn>
        <Aviseringsnamn xsi:nil="true" />
      </Namn>
      <Folkbokforing>
        <Folkbokforingsdatum>20131101</Folkbokforingsdatum>
        <LanKod>23</LanKod>
        <KommunKod>80</KommunKod>
        <ForsamlingKod xsi:nil="true" />
        <Fastighetsbeteckning>FRITZHEM 17</Fastighetsbeteckning>
        <FiktivtNr>0</FiktivtNr>
      </Folkbokforing>
      <Adresser>
        <Folkbokforingsadress>
          <CareOf xsi:nil="true" />
          <Utdelningsadress1 xsi:nil="true" />
          <Utdelningsadress2>TRÄDGÅRDSVÄGEN 7 A</Utdelningsadress2>
          <PostNr>83243</PostNr>
          <Postort>FRÖSÖN</Postort>
        </Folkbokforingsadress>
        <Riksnycklar>
          <FastighetsId>230105629</FastighetsId>
          <AdressplatsId>2788100</AdressplatsId>
          <LagenhetsId>22480810</LagenhetsId>
        </Riksnycklar>
      </Adresser>
      <Fodelse>
        <HemortSverige>
          <FodelselanKod>23</FodelselanKod>
          <Fodelseforsamling>RÄTAN</Fodelseforsamling>
        </HemortSverige>
      </Fodelse>
      <Medborgarskap>
        <MedborgarskapslandKod>SE</MedborgarskapslandKod>
        <Medborgarskapsdatum>0</Medborgarskapsdatum>
      </Medborgarskap>
    </Personpost>
  </FolkbokforingspostTYPE>
  <FolkbokforingspostTYPE>
    <Sekretessmarkering xsi:nil="true" />
    <Personpost>
      <PersonId>
        <PersonNr>197707145590</PersonNr>
      </PersonId>
      <HanvisningsPersonNr xsi:nil="true" />
      <Namn>
        <Tilltalsnamnsmarkering>20</Tilltalsnamnsmarkering>
        <Fornamn>Bobby Sebastian Ari Roy</Fornamn>
        <Mellannamn xsi:nil="true" />
        <Efternamn>Eklund</Efternamn>
        <Aviseringsnamn xsi:nil="true" />
      </Namn>
      <Folkbokforing>
        <Folkbokforingsdatum>20150915</Folkbokforingsdatum>
        <LanKod>14</LanKod>
        <KommunKod>89</KommunKod>
        <ForsamlingKod xsi:nil="true" />
        <Fastighetsbeteckning>JÄRTA 4</Fastighetsbeteckning>
        <FiktivtNr>0</FiktivtNr>
      </Folkbokforing>
      <Adresser>
        <Folkbokforingsadress>
          <CareOf xsi:nil="true" />
          <Utdelningsadress1 xsi:nil="true" />
          <Utdelningsadress2>KUNGSGATAN 41 C LGH 1201</Utdelningsadress2>
          <PostNr>44131</PostNr>
          <Postort>ALINGSÅS</Postort>
        </Folkbokforingsadress>
        <Riksnycklar>
          <FastighetsId>140856107</FastighetsId>
          <AdressplatsId>6170819</AdressplatsId>
          <LagenhetsId>6251962</LagenhetsId>
        </Riksnycklar>
      </Adresser>
      <Fodelse>
        <HemortSverige>
          <FodelselanKod>55</FodelselanKod>
          <Fodelseforsamling>KULLINGS-SK</Fodelseforsamling>
        </HemortSverige>
      </Fodelse>
      <Medborgarskap>
        <MedborgarskapslandKod>SE</MedborgarskapslandKod>
        <Medborgarskapsdatum>0</Medborgarskapsdatum>
      </Medborgarskap>
    </Personpost>
  </FolkbokforingspostTYPE>
  <FolkbokforingspostTYPE>
    <Sekretessmarkering xsi:nil="true" />
    <Personpost>
      <PersonId>
        <PersonNr>195907184930</PersonNr>
      </PersonId>
      <HanvisningsPersonNr xsi:nil="true" />
      <Namn>
        <Tilltalsnamnsmarkering>12</Tilltalsnamnsmarkering>
        <Fornamn>Nils-Arne</Fornamn>
        <Mellannamn xsi:nil="true" />
        <Efternamn>Hellberg</Efternamn>
        <Aviseringsnamn xsi:nil="true" />
      </Namn>
      <Folkbokforing>
        <Folkbokforingsdatum>19951002</Folkbokforingsdatum>
        <LanKod>14</LanKod>
        <KommunKod>35</KommunKod>
        <ForsamlingKod xsi:nil="true" />
        <Fastighetsbeteckning>MYREN 1:24</Fastighetsbeteckning>
        <FiktivtNr>0</FiktivtNr>
      </Folkbokforing>
      <Adresser>
        <Folkbokforingsadress>
          <CareOf xsi:nil="true" />
          <Utdelningsadress1 xsi:nil="true" />
          <Utdelningsadress2>OLJESKÄR 19</Utdelningsadress2>
          <PostNr>45797</PostNr>
          <Postort>RESÖ</Postort>
        </Folkbokforingsadress>
        <Riksnycklar>
          <FastighetsId>140255902</FastighetsId>
          <AdressplatsId>12613307</AdressplatsId>
          <LagenhetsId>24298880</LagenhetsId>
        </Riksnycklar>
      </Adresser>
      <Fodelse>
        <HemortSverige>
          <FodelselanKod>54</FodelselanKod>
          <Fodelseforsamling>LUR</Fodelseforsamling>
        </HemortSverige>
      </Fodelse>
      <Medborgarskap>
        <MedborgarskapslandKod>SE</MedborgarskapslandKod>
        <Medborgarskapsdatum>0</Medborgarskapsdatum>
      </Medborgarskap>
    </Personpost>
  </FolkbokforingspostTYPE>
  <FolkbokforingspostTYPE>
    <Sekretessmarkering xsi:nil="true" />
    <Personpost>
      <PersonId>
        <PersonNr>197002140098</PersonNr>
      </PersonId>
      <HanvisningsPersonNr xsi:nil="true" />
      <Namn>
        <Fornamn>Robert Daniel</Fornamn>
        <Mellannamn xsi:nil="true" />
        <Efternamn>Juhlin</Efternamn>
        <Aviseringsnamn xsi:nil="true" />
      </Namn>
      <Folkbokforing>
        <Folkbokforingsdatum>20131102</Folkbokforingsdatum>
        <LanKod>01</LanKod>
        <KommunKod>80</KommunKod>
        <ForsamlingKod xsi:nil="true" />
        <Fastighetsbeteckning>TRÄNGKÅREN 3</Fastighetsbeteckning>
        <FiktivtNr>0</FiktivtNr>
      </Folkbokforing>
      <Adresser>
        <Folkbokforingsadress>
          <CareOf xsi:nil="true" />
          <Utdelningsadress1 xsi:nil="true" />
          <Utdelningsadress2>RÅLAMBSVÄGEN 19 LGH 1102</Utdelningsadress2>
          <PostNr>11259</PostNr>
          <Postort>STOCKHOLM</Postort>
        </Folkbokforingsadress>
        <Riksnycklar>
          <FastighetsId>010129327</FastighetsId>
          <AdressplatsId>1447909</AdressplatsId>
          <LagenhetsId>24809951</LagenhetsId>
        </Riksnycklar>
      </Adresser>
      <Fodelse>
        <HemortSverige>
          <FodelselanKod>01</FodelselanKod>
          <Fodelseforsamling>HUSBY-ÄRL.</Fodelseforsamling>
        </HemortSverige>
      </Fodelse>
      <Medborgarskap>
        <MedborgarskapslandKod>SE</MedborgarskapslandKod>
        <Medborgarskapsdatum>0</Medborgarskapsdatum>
      </Medborgarskap>
    </Personpost>
  </FolkbokforingspostTYPE>
  <FolkbokforingspostTYPE>
    <Sekretessmarkering xsi:nil="true" />
    <Personpost>
      <PersonId>
        <PersonNr>195902134815</PersonNr>
      </PersonId>
      <HanvisningsPersonNr xsi:nil="true" />
      <Namn>
        <Tilltalsnamnsmarkering>20</Tilltalsnamnsmarkering>
        <Fornamn>Hans Peter</Fornamn>
        <Mellannamn xsi:nil="true" />
        <Efternamn>Hultman</Efternamn>
        <Aviseringsnamn xsi:nil="true" />
      </Namn>
      <Folkbokforing>
        <Folkbokforingsdatum>20130809</Folkbokforingsdatum>
        <LanKod>13</LanKod>
        <KommunKod>82</KommunKod>
        <ForsamlingKod xsi:nil="true" />
        <Fastighetsbeteckning>SLÄRYD 1:19</Fastighetsbeteckning>
        <FiktivtNr>0</FiktivtNr>
      </Folkbokforing>
      <Adresser>
        <Folkbokforingsadress>
          <CareOf xsi:nil="true" />
          <Utdelningsadress1 xsi:nil="true" />
          <Utdelningsadress2>SLÄRYD 122</Utdelningsadress2>
          <PostNr>31161</PostNr>
          <Postort>ULLARED</Postort>
        </Folkbokforingsadress>
        <Riksnycklar>
          <FastighetsId>130150999</FastighetsId>
          <AdressplatsId>11291263</AdressplatsId>
          <LagenhetsId>22077220</LagenhetsId>
        </Riksnycklar>
      </Adresser>
      <Fodelse>
        <HemortSverige>
          <FodelselanKod>54</FodelselanKod>
          <Fodelseforsamling>MÖLNDAL</Fodelseforsamling>
        </HemortSverige>
      </Fodelse>
      <Medborgarskap>
        <MedborgarskapslandKod>SE</MedborgarskapslandKod>
        <Medborgarskapsdatum>0</Medborgarskapsdatum>
      </Medborgarskap>
    </Personpost>
  </FolkbokforingspostTYPE>
  <FolkbokforingspostTYPE>
    <Sekretessmarkering xsi:nil="true" />
    <Personpost>
      <PersonId>
        <PersonNr>197306235057</PersonNr>
      </PersonId>
      <HanvisningsPersonNr xsi:nil="true" />
      <Namn>
        <Tilltalsnamnsmarkering>20</Tilltalsnamnsmarkering>
        <Fornamn>Carl Fredrik</Fornamn>
        <Mellannamn xsi:nil="true" />
        <Efternamn>Lundin</Efternamn>
        <Aviseringsnamn xsi:nil="true" />
      </Namn>
      <Folkbokforing>
        <Folkbokforingsdatum>20111201</Folkbokforingsdatum>
        <LanKod>12</LanKod>
        <KommunKod>82</KommunKod>
        <ForsamlingKod xsi:nil="true" />
        <Fastighetsbeteckning>OSCAR II 31</Fastighetsbeteckning>
        <FiktivtNr>0</FiktivtNr>
      </Folkbokforing>
      <Adresser>
        <Folkbokforingsadress>
          <CareOf xsi:nil="true" />
          <Utdelningsadress1 xsi:nil="true" />
          <Utdelningsadress2>FÖRENINGSGATAN 45</Utdelningsadress2>
          <PostNr>26136</PostNr>
          <Postort>LANDSKRONA</Postort>
        </Folkbokforingsadress>
        <Riksnycklar>
          <FastighetsId>120291075</FastighetsId>
          <AdressplatsId>1748543</AdressplatsId>
          <LagenhetsId>24233009</LagenhetsId>
        </Riksnycklar>
      </Adresser>
      <Fodelse>
        <HemortSverige>
          <FodelselanKod>54</FodelselanKod>
          <Fodelseforsamling>GREBBESTAD</Fodelseforsamling>
        </HemortSverige>
      </Fodelse>
      <Medborgarskap>
        <MedborgarskapslandKod>SE</MedborgarskapslandKod>
        <Medborgarskapsdatum>0</Medborgarskapsdatum>
      </Medborgarskap>
    </Personpost>
  </FolkbokforingspostTYPE>
</ArrayOfFolkbokforingspostTYPE>

3 个答案:

答案 0 :(得分:3)

您的XML根节点是ArrayOfFolkbokforingspostTYPE,然后包含FolkbokforingspostTYPE

但是,您的反序列化类没有FolkbokforingspostTYPE的定义,只有根ArrayOfFolkbokforingspostTYPE的定义。

您可以使用特殊粘贴功能在Visual Studio中自动创建反序列化类。查看this MSDN链接。

Here's我在使用您的XML后生成的VS.

检查使用情况here

编辑:我已经更新了两个代码示例。我提供的初始代码示例适用于您在原始问题中提供的XML。更新后的XML具有稍微不同的反序列化类,这仍然很重要。新代码示例使用您问题中更新的XML。

答案 1 :(得分:1)

试试这个......

Usings

using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.IO;
using System.Linq;

代码....将以下代码完全复制并粘贴到您的控制台应用程序中....并且不要忘记在应用程序* .exe文件夹中使用xml创建xml.xml文件....

class Program
{
    static void Main(string[] args)
    {
        try
        {

            List<FolkbokforingspostTYPE> deserializedList = new List<FolkbokforingspostTYPE>();
            deserializedList = Deserialize<List<FolkbokforingspostTYPE>>();

            var PersonalIdentityNumber = deserializedList.Select(item => item.Personpost.PersonId.PersonNr).FirstOrDefault();
            Console.WriteLine("Personnummer: " + PersonalIdentityNumber);
        }// Put a break-point here, then mouse-over PersonalIdentityNumber...  deserializedList contains everything if you need it
        catch (Exception)
        {

            throw;
        }
        Console.ReadKey();
    }

    private static T Deserialize<T>() where T : new()
    {
        // Create an instance of T
        T ReturnListOfT = CreateInstance<T>();


        // Create a new file stream for reading the XML file
        using (FileStream ReadFileStream = new FileStream("xml.xml", FileMode.Open, FileAccess.Read, FileShare.Read))
        {
            // Construct a XmlSerializer and use it  
            // to serialize the data from the stream.
            XmlSerializer SerializerObj = new XmlSerializer(typeof(T));
            try
            {
                // Deserialize the hashtable from the file
                ReturnListOfT = (T)SerializerObj.Deserialize(ReadFileStream);
            }
            catch (Exception ex)
            {
                Console.WriteLine(string.Format("Failed to serialize. Reason: {0}", ex.Message));
            }

        }
        // return the Deserialized data.
        return ReturnListOfT;
    }

    // function to create instance of T
    public static T CreateInstance<T>() where T : new()
    {
        return (T)Activator.CreateInstance(typeof(T));
    }
}

[XmlRoot(ElementName = "Sekretessmarkering")]
public class Sekretessmarkering
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Nil { get; set; }
}

[XmlRoot(ElementName = "PersonId")]
public class PersonId
{
    [XmlElement(ElementName = "PersonNr")]
    public string PersonNr { get; set; }
}

[XmlRoot(ElementName = "HanvisningsPersonNr")]
public class HanvisningsPersonNr
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Nil { get; set; }
}

[XmlRoot(ElementName = "Mellannamn")]
public class Mellannamn
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Nil { get; set; }
}

[XmlRoot(ElementName = "Aviseringsnamn")]
public class Aviseringsnamn
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Nil { get; set; }
}

[XmlRoot(ElementName = "Namn")]
public class Namn
{
    [XmlElement(ElementName = "Tilltalsnamnsmarkering")]
    public string Tilltalsnamnsmarkering { get; set; }
    [XmlElement(ElementName = "Fornamn")]
    public string Fornamn { get; set; }
    [XmlElement(ElementName = "Mellannamn")]
    public Mellannamn Mellannamn { get; set; }
    [XmlElement(ElementName = "Efternamn")]
    public string Efternamn { get; set; }
    [XmlElement(ElementName = "Aviseringsnamn")]
    public Aviseringsnamn Aviseringsnamn { get; set; }
}

[XmlRoot(ElementName = "ForsamlingKod")]
public class ForsamlingKod
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Nil { get; set; }
}

[XmlRoot(ElementName = "Folkbokforing")]
public class Folkbokforing
{
    [XmlElement(ElementName = "Folkbokforingsdatum")]
    public string Folkbokforingsdatum { get; set; }
    [XmlElement(ElementName = "LanKod")]
    public string LanKod { get; set; }
    [XmlElement(ElementName = "KommunKod")]
    public string KommunKod { get; set; }
    [XmlElement(ElementName = "ForsamlingKod")]
    public ForsamlingKod ForsamlingKod { get; set; }
    [XmlElement(ElementName = "Fastighetsbeteckning")]
    public string Fastighetsbeteckning { get; set; }
    [XmlElement(ElementName = "FiktivtNr")]
    public string FiktivtNr { get; set; }
}

[XmlRoot(ElementName = "CareOf")]
public class CareOf
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Nil { get; set; }
}

[XmlRoot(ElementName = "Utdelningsadress1")]
public class Utdelningsadress1
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Nil { get; set; }
}

[XmlRoot(ElementName = "Folkbokforingsadress")]
public class Folkbokforingsadress
{
    [XmlElement(ElementName = "CareOf")]
    public CareOf CareOf { get; set; }
    [XmlElement(ElementName = "Utdelningsadress1")]
    public Utdelningsadress1 Utdelningsadress1 { get; set; }
    [XmlElement(ElementName = "Utdelningsadress2")]
    public string Utdelningsadress2 { get; set; }
    [XmlElement(ElementName = "PostNr")]
    public string PostNr { get; set; }
    [XmlElement(ElementName = "Postort")]
    public string Postort { get; set; }
}

[XmlRoot(ElementName = "Riksnycklar")]
public class Riksnycklar
{
    [XmlElement(ElementName = "FastighetsId")]
    public string FastighetsId { get; set; }
    [XmlElement(ElementName = "AdressplatsId")]
    public string AdressplatsId { get; set; }
    [XmlElement(ElementName = "LagenhetsId")]
    public string LagenhetsId { get; set; }
}

[XmlRoot(ElementName = "Adresser")]
public class Adresser
{
    [XmlElement(ElementName = "Folkbokforingsadress")]
    public Folkbokforingsadress Folkbokforingsadress { get; set; }
    [XmlElement(ElementName = "Riksnycklar")]
    public Riksnycklar Riksnycklar { get; set; }
}

[XmlRoot(ElementName = "HemortSverige")]
public class HemortSverige
{
    [XmlElement(ElementName = "FodelselanKod")]
    public string FodelselanKod { get; set; }
    [XmlElement(ElementName = "Fodelseforsamling")]
    public string Fodelseforsamling { get; set; }
}

[XmlRoot(ElementName = "Fodelse")]
public class Fodelse
{
    [XmlElement(ElementName = "HemortSverige")]
    public HemortSverige HemortSverige { get; set; }
}

[XmlRoot(ElementName = "Medborgarskap")]
public class Medborgarskap
{
    [XmlElement(ElementName = "MedborgarskapslandKod")]
    public string MedborgarskapslandKod { get; set; }
    [XmlElement(ElementName = "Medborgarskapsdatum")]
    public string Medborgarskapsdatum { get; set; }
}

[XmlRoot(ElementName = "Personpost")]
public class Personpost
{
    [XmlElement(ElementName = "PersonId")]
    public PersonId PersonId { get; set; }
    [XmlElement(ElementName = "HanvisningsPersonNr")]
    public HanvisningsPersonNr HanvisningsPersonNr { get; set; }
    [XmlElement(ElementName = "Namn")]
    public Namn Namn { get; set; }
    [XmlElement(ElementName = "Folkbokforing")]
    public Folkbokforing Folkbokforing { get; set; }
    [XmlElement(ElementName = "Adresser")]
    public Adresser Adresser { get; set; }
    [XmlElement(ElementName = "Fodelse")]
    public Fodelse Fodelse { get; set; }
    [XmlElement(ElementName = "Medborgarskap")]
    public Medborgarskap Medborgarskap { get; set; }
}

[XmlRoot(ElementName = "FolkbokforingspostTYPE")]
public class FolkbokforingspostTYPE
{
    [XmlElement(ElementName = "Sekretessmarkering")]
    public Sekretessmarkering Sekretessmarkering { get; set; }
    [XmlElement(ElementName = "Personpost")]
    public Personpost Personpost { get; set; }
}

}

上面的代码从应用程序* .exe文件夹中的xml.xml文件中加载XML ....检查'PersonalIdentityNumber'以获取结果....

////////////////

更新1

////////////////

对于新XML中的所有PersonalIdentityNumber,只需使用以下代码替换Console应用程序中的“Main”功能....

    static void Main(string[] args)
    {
        try
        {

            List<FolkbokforingspostTYPE> deserializedList = new List<FolkbokforingspostTYPE>();
            deserializedList = Deserialize<List<FolkbokforingspostTYPE>>();

            var PersonalIdentityNumber = deserializedList.Select(item => item.Personpost.PersonId.PersonNr).ToList();
            foreach(var i in PersonalIdentityNumber)
            {
                Console.WriteLine("Personnummer: " + i);
            }
        }// Put a break-point here, then mouse-over PersonalIdentityNumber...  deserializedList contains everything if you need it
        catch (Exception)
        {

            throw;
        }
        Console.ReadKey();
    }

答案 2 :(得分:0)

我认为问题在于代码片段中没有提到FolkbokforingspostTYPE,只有ArrayOfFolkbokforingspostTYPE。反序列化器期望成员元素是后者的直接子元素。