检查XML元素的最佳方法

时间:2013-01-25 00:18:37

标签: c# xml linq-to-xml

我有代码将XML发布到WebResponse并获取Xml数据的输出/响应。 如果在发布时出现错误,则会产生如下的XML输出响应:

<OUTPUT version="1.0">
   <ERROR type="Incomplete">Invalid data</ERROR>
</OUTPUT>

如果遇到错误,第一个元素将是“ERROR”,如果没有遇到错误,则第一个元素将是“INFO”。 他们的方法是检查webResponse XML第一个元素是否为“ERROR”,如果是,请抓取标签内的type属性和文本“Invalid Data”。如果不是错误什么也不做。不确定如何解析xml数据。

XDocument doc = XDocument.Parse(XmlResponse)
errorMsg =  doc.Parse(XMLResponse).Descendants("ERROR").Select(e => (string)e.Attribute("type")).First().ToString();

2 个答案:

答案 0 :(得分:1)

你可以使用Descendants(“ERROR”)。FirstOrDefault()并检查是否为null。

答案 1 :(得分:0)

获取错误类型:

XDocument doc = XDocument.Parse(XmlResponse)
XElement firstElement = doc.Root.Elements().First();
if(firstElement.Name == "ERROR")
{
    string errorType = firstElement.Attribute("type").Value;
    string message = firstElement.Value;
    // Process error
}
else
{
    // It is an info
}