我正在尝试使用Linq解析XML片段到XML

时间:2012-02-03 17:43:19

标签: xml linq-to-xml xml-parsing

我尝试使用Linq to XML解析以下XML片段中的“message”元素但由于某种原因它无法正常工作:

<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
    <code/>
    <message xml:lang="en-US">Bad Request - Error in query syntax.</message>
</error>

我确信我错过了一些愚蠢的东西。

2 个答案:

答案 0 :(得分:2)

你的代码是如何看待的,这是你期望的结果,如果你在发出确切的错误消息后收到错误,你会得到哪一个。该片段具有命名空间,因此请确保在选择元素时执行以下操作:

XElement error = XElement.Parse(fragment); 
XNamespace df = error.Name.Namespace; 
XElement msg = error.Element(df + "message");.

答案 1 :(得分:0)

我明白了!基本上,您必须使用默认命名空间,如下所示:

        var element = XElement.Parse(...);

        var ns = element.GetDefaultNamespace();

        var message = element.Element(ns + "message").Value;