Comment puis-je extraire des paires de valeurs clés de cet exemple xml LINQ:obtenir des paires de valeurs clés de XML à l'aide LINQ
<foo>
<add key="key1" Value="val1"/>
<add key="key2" Value="val2"/>
<add key="key3" Value="val3"/>
<foo/>
Comment puis-je extraire des paires de valeurs clés de cet exemple xml LINQ:obtenir des paires de valeurs clés de XML à l'aide LINQ
<foo>
<add key="key1" Value="val1"/>
<add key="key2" Value="val2"/>
<add key="key3" Value="val3"/>
<foo/>
Essayez ceci:
string text = "<foo>...</foo>";
var pairs = XDocument.Parse(text)
.Descendants("add")
.Select(x => new { Key = x.Attribute("key").Value,
Value = x.Attribute("Value").Value })
.ToList();
Salut, cela ne sera pas compilé. Je reçois: 'System.Collections.Generic.IEnumerable
grr ... ça ne fait rien! using System.Linq; do'h – raklos
À la place du ToList(); Je serais tenté d'utiliser un: .ToDictionary (item => item.Key, item => item.Value); Juste comme me semble plus évident pour le problème d'OP. – Mike
XDocument fooXML = new XDocument.Load("foo.xml")
var query = from a in fooXML.Element("foo").Elements("add")
select new
{
key = a.Attribute("key").Value,
val = a.Attribute("Value").Value
};
// Then do what you want with the query...
Je pense que vous voulez dire l'attribut plutôt que les attributs, et Elements ne prend qu'un seul nom d'élément, pas un chemin (AFAIK, de toute façon). –
Je sais que ce n'est qu'un par exemple, mais devrait être :) –
Mike