使用LINQ进行简单的XML解析

时间:2012-12-24 15:34:46

标签: c# xml linq xml-parsing

我想解析这个XML:

<?xml version="1.0" encoding="Windows-1252" ?>
<TEST>Login inexistant</TEST>

我写了这段代码

var result  = from item in XElement.Parse(m_strRetour).Descendants("TEST")
              select item;
return result.First().ToString();

m_strRetour是一个包含我的XML的字符串。

执行后,结果为空。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

XElement.Parse将返回TEST元素本身 - 它没有任何后代。 (另外,在这里使用查询表达式有没有的好处。每当你写from x in y select x时,你应该考虑是否不能只使用y来代替......)

您可以将其解析为XDocument,在这种情况下,成为TEST后代......或者您可以使用XElement本身。

你真正想要实现的目标是什么?您的真实 XML只有一个元素吗?

答案 1 :(得分:2)

TEST似乎是您的根节点,因此它不能是Descendant

要从中获取价值,您可以试试这个。

var xml = "<?xml version='1.0' encoding='Windows-1252' ?><TEST>Login inexistant</TEST>";

var result  = XElement.Parse(xml);
var value = result.Value;