3

我想用 Xdocument 在 Windows 商店应用程序中解析 xml。

我试过这个,但返回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内容:

<title type='text'>tiitle</title>
<content type='text'> gfgdgdggd</content>
<link rel='related' type='application/atom+xml' href='http....'/>

如何从属性中检索文本?

4

2 回答 2

3

正如 ZevSpitz 已经提到的,您的 XML 无效。我对其进行了一些修改,以便能够测试我的代码:

<root>
    <title type="text">title</title>
    <content type="text">gfgdgdggd</content>
</root>

type您可以使用以下代码从属性中检索值:

XDocument xDoc = XDocument.Parse(xml);

var types =
    from x in xDoc.Root.Descendants()
    select x.Attribute("type").Value;

在我的情况下xml,声明如下:

private string xml =
    @"<root>
        <title type=""text"">title</title>
        <content type=""text"">gfgdgdggd</content>
    </root>";

如果文件内容相同,您仍然可以使用您的代码从 URL 加载 XML。

于 2012-11-20T06:05:58.537 回答
0

尝试:

var types =
    from e in xDoc.Descendants()
    select (string)e.Attribute("type");

foreach (string type in types) {
    Console.WriteLine(type);
}
于 2012-11-18T23:59:52.400 回答