LINQ to XML get value
This is a newbie question, but I can't seem to find the following:
XML is
<sets><set><title>hello1</title><images><image>1667</image></images></set></sets>
foreach (XElement setNode in collectionXML.DescendantNodes())
{
myString = setNode.Descendants("title").First()....
}
From First (), how do I get the internal value of the header of a node? (in this case it will be "hello1")
Calling ToString () on the element gives "hello1", which is clearly not exactly what I want
+2
qui
source
to share
2 answers
myString = setNode.Descendants("title").First().Value;
(however, I am very vague as to what the initial one does DescendantNodes
, I would like to be more specific as to which nodes I choose)
+4
Marc gravell
source
to share
I know this has already been accepted and accepted, but I can't help but point out that you can do more with LINQ.
collectionXML
.Elements("sets")
.Elements("set")
.Select(c => c)
.Each(x => SetValue(x));
void SetValue(XElement element)
{
myString = element.GetElementValue("title");
}
// Each extension method (needs to be in a static class)
public static void Each<T>(this IEnumerable<T> items, Action<T> action)
{
foreach (var item in items) action(item);
}
0
Ty.
source
to share