0

我有这个 XML 文件设置,我如何(使用 LINQ)将(StartItem)列表返回给 ArrayList

并返回(PriceItem)到另一个 ArrayList

<Settings>
    <ConSetting SettingID="1">
         <Company CompanyID="1" CompanyName="CA" Code="*100#" Pin="11111" MobileName="M1">
            <StartItems StartID="1"> 094</StartItems>
            <StartItems StartID="2"> 095</StartItems>
            <StartItems StartID="4"> 097</StartItems>
            <StartItems StartID="5"> 098</StartItems>
        </Company>
        <Company CompanyID="2" CompanyName="CB" Code="*200#" Pin="22222" MobileName="M2">
            <StartItems StartID="1"> 099</StartItems>
            <StartItems StartID="2"> 093</StartItems>
            <StartItems StartID="3"> 091</StartItems>
            <StartItems StartID="4"> 092</StartItems>

        </Company>
    </ConSetting>
    <Price SettingID ="2" CompanyName="CA" >
             <Company CompanyID="1">
            <PriceItem P="40"> 50</PriceItem>
            <PriceItem P="90"> 100</PriceItem>
            <PriceItem P="200"> 225</PriceItem>

        </Company>
        <Company CompanyID="2" CompanyName="CB" >
            <PriceItem P="40"> 60</PriceItem>
            <PriceItem P="90"> 110</PriceItem>
            <PriceItem P="200"> 235</PriceItem>

        </Company>
    </Price>

</Settings>
4

2 回答 2

2

XDocument 在您的情况下很容易使用:

var doc = XDocument.Load("settings.xml");
var result = from items in doc.Descendants("StartItems")
             where items.Parent.Attribute("CompanyID").Value == "1"
             select new StartItem() 
             {
                 StartID = items.Attribute("StartID").Value,
                 Value = items.Value
             };
var Company1List = new ArrayList();

foreach(var item in result)
{
    Company1List.Add(item);
}

public class StartItem
{
    public string StartID { get; set; }
    public string Value { get; set; }
}
于 2012-06-10T13:55:01.813 回答
0

您可能想查看 .NET 中的 XmlReader 类

它应该能够轻松解析此 XML,然后您可以从节点中选择某些项目到您想要的任何列表中。

http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.aspx

看看这个问题和答案

在 C# 中使用 XmlReader 读取 Xml

于 2012-06-10T11:13:52.030 回答