【问题标题】:Simple XML parsing with LINQ使用 LINQ 进行简单的 XML 解析
【发布时间】:2012-12-24 15:34:45
【问题描述】:
我想解析这个 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 的字符串。
执行后,结果为空。
我做错了什么?
【问题讨论】:
标签:
c#
xml
linq
xml-parsing
【解决方案1】:
TEST 似乎是你的根节点,所以它不可能是Descendant。
要从中获得价值,您可以试试这个。
var xml = "<?xml version='1.0' encoding='Windows-1252' ?><TEST>Login inexistant</TEST>";
var result = XElement.Parse(xml);
var value = result.Value;
【解决方案2】:
XElement.Parse 将返回 TEST 元素本身 - 它没有任何后代。 (此外,在此处使用查询表达式没有好处。每当您编写 from x in y select x 时,您都应该考虑是否不能只使用 y...)
您可以将其解析为XDocument,在这种情况下将是TEST 的后代...或者您可以只使用XElement 本身。
您真正想要达到的目标是什么?您的 real XML 是否只有一个元素?