Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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#XML解析双标记到列表_C#_Xml_Parsing - Fatal编程技术网

C#XML解析双标记到列表

C#XML解析双标记到列表,c#,xml,parsing,C#,Xml,Parsing,我有个问题。我要将XML解析为以下类: [XmlRoot(ElementName = "picture")] public class SetPicture { [XmlElement(ElementName = "id")] public string Id { get; set; } [XmlElement(ElementName = "name")] public string Name { get; set; } [XmlElement(Eleme

我有个问题。我要将XML解析为以下类:

[XmlRoot(ElementName = "picture")]
public class SetPicture
{
    [XmlElement(ElementName = "id")]
    public string Id { get; set; }
    [XmlElement(ElementName = "name")]
    public string Name { get; set; }
    [XmlElement(ElementName = "size")]
    public string Size { get; set; }
    [XmlElement(ElementName = "price")]
    public string Price { get; set; }
    [XmlElement(ElementName = "quantity")]
    public string Quantity { get; set; }
    [XmlElement(ElementName = "sizes")]
    public List<Size> Sizes { get; set; }
    [XmlIgnore]
    public ImageSource imageSource { get; set; }
}

[XmlRoot(ElementName = "set")]
public class Set
{
    [XmlElement(ElementName = "name")]
    public string Name { get; set; }
    [XmlElement(ElementName = "price")]
    public string Price { get; set; }
    [XmlElement(ElementName = "pictures")]
    public List<SetPicture> Pictures { get; set; }
}

[XmlRoot(ElementName = "sets")]
public class Sets
{
    [XmlElement(ElementName = "set")]
    public List<Set> Set { get; set; }
}

[XmlRoot(ElementName = "data")]
public class Data
{
    [XmlElement(ElementName = "sets")]
    public Sets Sets { get; set; }
}
[XmlRoot(ElementName=“picture”)]
公共类设置图片
{
[xmlement(ElementName=“id”)]
公共字符串Id{get;set;}
[xmlement(ElementName=“name”)]
公共字符串名称{get;set;}
[xmlement(ElementName=“size”)]
公共字符串大小{get;set;}
[xmlement(ElementName=“price”)]
公共字符串Price{get;set;}
[xmlement(ElementName=“数量”)]
公共字符串数量{get;set;}
[xmlement(ElementName=“size”)]
公共列表大小{get;set;}
[XmlIgnore]
公共ImageSource ImageSource{get;set;}
}
[XmlRoot(ElementName=“set”)]
公共类集
{
[xmlement(ElementName=“name”)]
公共字符串名称{get;set;}
[xmlement(ElementName=“price”)]
公共字符串Price{get;set;}
[xmlement(ElementName=“pictures”)]
公共列表图片{get;set;}
}
[XmlRoot(ElementName=“sets”)]
公共类集合
{
[xmlement(ElementName=“set”)]
公共列表集{get;Set;}
}
[XmlRoot(ElementName=“data”)]
公共类数据
{
[xmlement(ElementName=“sets”)]
公共集合集合{get;set;}
}
我收到了以下XML:

<data>
   <sets>
      <set>
         <name>Set A</name>
         <price>13.9</price>
         <pictures>
            <picture>
               <id>4</id>
               <name>Potret2.jpg</name>
               <size>13 x 18 mat</size>
               <price>6.95</price>
               <quantity>2</quantity>
            </picture>
            <picture>
               <id>5</id>
               <name>Potret2Pasfoto.jpg</name>
               <size>13 x 18 mat</size>
               <price>6.95</price>
               <quantity>1</quantity>
            </picture>
         </pictures>
      </set>
   </sets>
</data>

设定
13.9
4.
Potret2.jpg
13 x 18垫
6.95
2.
5.
Potret2Pasfoto.jpg
13 x 18垫
6.95
1.
但是在将XML解析到类之后,我得到一个空的
图片列表。我想我知道出了什么问题,因为我将标记
解析到列表中,但我需要将元素
解析到列表中


如何解决此问题?

方法1-更改
集合
类。创建带有
图片的新类
具有
图片的列表

[XmlRoot(ElementName = "set")]
public class Set
{
    [XmlElement(ElementName = "name")]
    public string Name { get; set; }
    [XmlElement(ElementName = "price")]
    public string Price { get; set; }
    [XmlElement(ElementName = "pictures")]
    public Pictures Pictures { get; set; }
}

[XmlRoot(ElementName = "pictures")]
public class Pictures
{
    [XmlElement(ElementName = "picture")]
    public List<SetPicture> Picture { get; set; }
}

[xmlement(ElementName=“picture”)]
[xmlement(ElementName=“picture”)]
没有,已经尝试过了,但仍然返回一个空列表
[XmlRoot(ElementName = "set")]
public class Set
{
    [XmlElement(ElementName = "name")]
    public string Name { get; set; }
    [XmlElement(ElementName = "price")]
    public string Price { get; set; }
    [XmlArray("pictures")]
    [XmlArrayItem("picture", typeof(SetPicture))]
    public List<SetPicture> Pictures { get; set; }
}