Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
C# 读取XmlArray元素的属性_C#_.net_Xml Serialization - Fatal编程技术网

C# 读取XmlArray元素的属性

C# 读取XmlArray元素的属性,c#,.net,xml-serialization,C#,.net,Xml Serialization,如何读取XML数组元素的属性? 下面的代码用于读取不工作的XML数组元素的属性。请让我知道一个替代的解决方案来阅读,如果可用或我错过了什么。我看到了很多样品,但无法确定我遗漏了什么 要读取的源xml是 <RootElement> <devices AttNAme="attValue"> <device> <sometag/> <device> <device> <somet

如何读取XML数组元素的属性? 下面的代码用于读取不工作的XML数组元素的属性。请让我知道一个替代的解决方案来阅读,如果可用或我错过了什么。我看到了很多样品,但无法确定我遗漏了什么

要读取的源xml是

 <RootElement>
  <devices AttNAme="attValue">
   <device>
     <sometag/>
   <device>
   <device>
      <sometag/>
    <device>
 </devices>
<RootElement>

我使用的代码是

[XmlRoot("RootElement")]
public class RootElement
{
[XmlArrayItem("DeviceType", typeof(DeviceTypeSection))]
    [XmlArray("devices")]
    public DeviceTypesSection DeviceTypesInfo { get; set; }

 }

[XmlType("DeviceTypes")]
public class DeviceTypesSection : List<DeviceTypeSection>
{
    [XmlAttribute("AttNAme")]
    public string AttNAme{ get; set; }
}

..and so on
[XmlRoot(“RootElement”)]
公共类根元素
{
[XmlArrayItem(“DeviceType”,typeof(DeviceTypeSection))]
[XmlArray(“设备”)]
公共设备类型选择设备类型信息{get;set;}
}
[XmlType(“设备类型”)]
公共类设备类型选择:列表
{
[xmldattribute(“AttNAme”)]
公共字符串AttNAme{get;set;}
}
等等

谢谢,

如何匹配“设备类型”和“设备类型”?@HenkHolterman:谢谢,但我不理解你所说的逻辑。我不能将它们相同,因为我使用“设备”选项卡属性保存所有设备级别的信息,并且对于每个设备信息,我有单独的信息集要保存,带有更多子标签。但是有什么线索我可能在这里遗漏了吗?临时修复:目前解决了这个问题,使用LINQ to XML直接查找那些数组节点并读取这些节点的属性。永久修复:欢迎。(查看如何在一次对文档进行反序列化时直接读取arrylist节点的属性)。但是,您需要将类型映射到标记的完整信息,这在您的问题中并不清楚。