0

次のxmlの辞書を作成したい:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <groups>
        <group>
            <data>Open</data>
            <aggregation>5</aggregation>
        </group>
    </groups>

辞書に値を次のように取得させたい:

開く,5

<data>Open</data>「Open」は からフェッチされ、「5」はからフェッチされることに注意してください<aggregation>5</aggregation>

私の現在のコードは次のとおりです。

foreach (XmlNode group in Bugsagg)
{
    XmlNode data = group.SelectSingleNode(".//data");
    XmlNode aggregate = group.SelectSingleNode(".//aggregation");

    if (Dict_Aggregate.ContainsKey(data.InnerText))
    {
        Dict_Aggregate[data.InnerText]++;
    }
    else
    {
        Dict_Aggregate.Add(data.InnerText, 1);
    }

希望する応答が得られません。私が間違っているところを提案してください。ありがとう

4

1 に答える 1

2

XElement と LINQ to XML を使用します。追加する必要があります

using System.Xml;
using System.Xml.Linq;

あなたのコードの上に。次に、次を使用します

string xml = @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?><groups><group><data>Open</data><aggregation>5</aggregation></group></groups>";

XElement xe =  XElement.Parse(xml);

Dictionary<string,string> d =
xe.Elements("group")
.ToDictionary 
(
    x=>(string)x.Element("data"),      //Key Selector
    z=>(string)z.Element("aggregation")//Value Selector
);

宣言などを含む完全修飾xmlを提供するため、XDocumentを使用することを提案する人もいます。

XDocument xd = XDocument.Parse(xml);

Dictionary<string,string> d =   
xd.Root.Elements("group")
.ToDictionary 
(
    x=>(string)x.Element("data"),      //Key Selector
    z=>(string)z.Element("aggregation")//Value Selector
);
于 2013-09-12T07:11:57.700 に答える