在C#多层次中读取XML

时间:2013-07-19 09:34:47

标签: c# xml

嘿伙计们,我需要帮助将XML文件的所有元素都变成变量。

这是我的XML:

<?xml version="1.0"?>
<labels>
    <label>
        <product>Prod. 1</product>
        <colour>947 - Gold</colour>
        <size>15</size>
        <barcode>INT0919890</barcode>
        <amount>15</amount>
    </label>
    <label>
        <product>Prod. 4</product>
        <colour>942 - Silver</colour>
        <size>66</size>
        <barcode>INT0912390</barcode>
        <amount>16</amount>
    </label>
    <label>
        <product>Prod. 8</product>
        <colour>947 - Gold</colour>
        <size>19</size>
        <barcode>INT0932490</barcode>
        <amount>11</amount>
    </label>
</labels>

我怎么能做到这一点,所以我的程序得到第一个标签,把它放入变量,所以我可以使用我的其他功能。然后继续下一个??

1 个答案:

答案 0 :(得分:3)

使用LINQ to XML解析(返回强类型匿名对象):

var xdoc = XDocument.Load(path_to_xml_file);
var labels = from l in xdoc.Root.Elements()
             select new {
                 Product = (string)l.Element("product"),
                 Colour = (string)l.Element("colour"),
                 Size = (int)l.Element("size"),
                 Barcode = (string)l.Element("barcode"),
                 Amount = (int)l.Element("amount")
             };

用法:

foreach(var label in labels)
{
    // use label.Product etc
}