当xml有多个相同的元素时,如何将xml元素与C#模型绑定?
我不能用这种xml文件绑定我的c#模型。因为有多个元素具有相同的属性。 这是我的XML文件的一个示例当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&
<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进行了修改。您可以将此标记为答案