Reputation: 112
I want parse xml in windows store app with Xdocument.
I tried this,but returned with null:
XDocument xDoc;
string title= "";
xDoc = XDocument.Load(url);
var elements = from x in xDoc.Descendants()
select new
{
title = x.Descendants("title").First().Value,
};
foreach (var el in elements)
_title = title;
Xml contents:
<title type='text'>tiitle</title>
<content type='text'> gfgdgdggd</content>
<link rel='related' type='application/atom+xml' href='http....'/>
How can is retrive text from attributes ?
Upvotes: 3
Views: 15138
Reputation: 17865
As ZevSpitz already mentioned, your XML is invalid. I modified it a bit to be able to test my code:
<root>
<title type="text">title</title>
<content type="text">gfgdgdggd</content>
</root>
You can retrieve values from the type
attributes with the following code:
XDocument xDoc = XDocument.Parse(xml);
var types =
from x in xDoc.Root.Descendants()
select x.Attribute("type").Value;
In my case xml
is declared as follows:
private string xml =
@"<root>
<title type=""text"">title</title>
<content type=""text"">gfgdgdggd</content>
</root>";
You can still use your code to load the XML from a URL if the file contents are the same.
Upvotes: 3
Reputation: 15377
Try:
var types =
from e in xDoc.Descendants()
select (string)e.Attribute("type");
foreach (string type in types) {
Console.WriteLine(type);
}
Upvotes: 0