【问题标题】: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 是否只有一个元素?

      【讨论】:

        猜你喜欢
        • 2012-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-07
        • 1970-01-01
        相关资源
        最近更新 更多