Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当xml有多个相同的元素时,如何将xml元素与C#模型绑定?_C#_Xml_Data Binding_Deserialization - Fatal编程技术网

当xml有多个相同的元素时,如何将xml元素与C#模型绑定?

当xml有多个相同的元素时,如何将xml元素与C#模型绑定?,c#,xml,data-binding,deserialization,C#,Xml,Data Binding,Deserialization,我不能用这种xml文件绑定我的c#模型。因为有多个元素具有相同的属性。 这是我的XML文件的一个示例 <Type> <Loop LoopId="2100A" Name="MEMBER NAME"> <PER> <!--Contact Function Code--> <PER01>IP<!--Insured Party--></PER01&

我不能用这种xml文件绑定我的c#模型。因为有多个元素具有相同的属性。 这是我的XML文件的一个示例

  <Type>
       <Loop LoopId="2100A" Name="MEMBER NAME">
         <PER>
           <!--Contact Function Code-->
           <PER01>IP<!--Insured Party--></PER01>
           <PER02 />
           <!--Communication Number Qualifier-->
           <PER03>HP<!--Home Phone Number--></PER03>
           <!--Communication Number-->
           <PER04>6235834409</PER04>
         </PER>
       </Loop>
       <Loop LoopId="2100C" Name="MEMBER MAILING ADDRESS">
         <NM1>
           <!--Entity Identifier Code-->
           <NM101>31<!--Postal Mailing Address--></NM101>
           <!--Entity Type Qualifier-->
           <NM102>1<!--Person--></NM102>
         </NM1>
       </Loop>
       <Loop LoopId="2100G" Name="RESPONSIBLE PERSON">
         <PER>
           <!--Contact Function Code-->
           <PER01>IP<!--Insured Party--></PER01>
           <PER02 />
           <!--Communication Number Qualifier-->
           <PER03>HP<!--Home Phone Number--></PER03>
           <!--Communication Number-->
           <PER04>6235834409</PER04>
         </PER>
         <LM>
           <!--Contact Function Code-->
           <LM01>RP<!--Responsible Person--></LM01>
           <LM02 />
         </LM>
       </Loop>
   </Type>

基于XML,模型如下所示

[XmlRoot(ElementName = "PER")]
public class PER
{
    [XmlElement(ElementName = "PER01")]
    public string PER01 { get; set; }
    [XmlElement(ElementName = "PER02")]
    public string PER02 { get; set; }
    [XmlElement(ElementName = "PER03")]
    public string PER03 { get; set; }
    [XmlElement(ElementName = "PER04")]
    public string PER04 { get; set; }
}

[XmlRoot(ElementName = "Loop")]
public class Loop
{
    [XmlElement(ElementName = "PER")]
    public PER PER { get; set; }
    [XmlAttribute(AttributeName = "LoopId")]
    public string LoopId { get; set; }
    [XmlAttribute(AttributeName = "Name")]
    public string Name { get; set; }
    [XmlElement(ElementName = "NM1")]
    public NM1 NM1 { get; set; }
    [XmlElement(ElementName = "LM")]
    public LM LM { get; set; }
}

[XmlRoot(ElementName = "NM1")]
public class NM1
{
    [XmlElement(ElementName = "NM101")]
    public string NM101 { get; set; }
    [XmlElement(ElementName = "NM102")]
    public string NM102 { get; set; }
}

[XmlRoot(ElementName = "LM")]
public class LM
{
    [XmlElement(ElementName = "LM01")]
    public string LM01 { get; set; }
    [XmlElement(ElementName = "LM02")]
    public string LM02 { get; set; }
}

[XmlRoot(ElementName = "Type")]
public class Type
{
    [XmlElement(ElementName = "Loop")]
    public List<Loop> Loop { get; set; }
}
输出

2100A MEMBER NAME
PER:IP--HP-6235834409
2100C MEMBER MAILING ADDRESS
NM1:31-1
2100G RESPONSIBLE PERSON
PER:IP--HP-6235834409
LM:RP-

基于XML,模型如下所示

[XmlRoot(ElementName = "PER")]
public class PER
{
    [XmlElement(ElementName = "PER01")]
    public string PER01 { get; set; }
    [XmlElement(ElementName = "PER02")]
    public string PER02 { get; set; }
    [XmlElement(ElementName = "PER03")]
    public string PER03 { get; set; }
    [XmlElement(ElementName = "PER04")]
    public string PER04 { get; set; }
}

[XmlRoot(ElementName = "Loop")]
public class Loop
{
    [XmlElement(ElementName = "PER")]
    public PER PER { get; set; }
    [XmlAttribute(AttributeName = "LoopId")]
    public string LoopId { get; set; }
    [XmlAttribute(AttributeName = "Name")]
    public string Name { get; set; }
    [XmlElement(ElementName = "NM1")]
    public NM1 NM1 { get; set; }
    [XmlElement(ElementName = "LM")]
    public LM LM { get; set; }
}

[XmlRoot(ElementName = "NM1")]
public class NM1
{
    [XmlElement(ElementName = "NM101")]
    public string NM101 { get; set; }
    [XmlElement(ElementName = "NM102")]
    public string NM102 { get; set; }
}

[XmlRoot(ElementName = "LM")]
public class LM
{
    [XmlElement(ElementName = "LM01")]
    public string LM01 { get; set; }
    [XmlElement(ElementName = "LM02")]
    public string LM02 { get; set; }
}

[XmlRoot(ElementName = "Type")]
public class Type
{
    [XmlElement(ElementName = "Loop")]
    public List<Loop> Loop { get; set; }
}
输出

2100A MEMBER NAME
PER:IP--HP-6235834409
2100C MEMBER MAILING ADDRESS
NM1:31-1
2100G RESPONSIBLE PERSON
PER:IP--HP-6235834409
LM:RP-

@akb,问题在于XML序列化?不。。XML反序列化3循环包含不同的元素。也就是说,它变得混乱了。@akb,已经按照新的XML进行了修改。您可以将此标记为Answer@akb,问题在于XML序列化?否。。XML反序列化3循环包含不同的元素。也就是说,它变得混乱了。@akb,已经按照新的XML进行了修改。您可以将此标记为答案