XML新手!所以我有一些xml数据:
<DataChunk> <ResponseChunk> <errors> <error code=\"0\"> Something happened here: Line 1, position 1. </error> </errors> </ResponseChunk> </DataChunk>
我如何获得“错误”列表,可以在其中访问“错误代码”和下面的文本描述?另外,我在C#中使用.net4.0 …谢谢!
将XML加载到中XmlDocument,然后使用xpath查询提取所需的数据。
XmlDocument
例如
XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlstring); XmlNode errorNode = doc.DocumentElement.SelectSingleNode("/DataChunk/ResponseChunk/Errors/error"); string errorCode = errorNode.Attributes["code"].Value; string errorMessage = errorNode.InnerText;
如果XML可能具有多个错误元素,则可以SelectNodes用来获取一个XmlNodeList包含该xpath的所有元素的。例如:
SelectNodes
XmlNodeList
XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlstring); XmlNodeList errorNodes = doc.DocumentElement.SelectNodes("/DataChunk/ResponseChunk/Errors/error"); foreach(XmlNode errorNode in errorNodes) { string errorCode = errorNode.Attributes["code"].Value; string errorMessage = errorNode.InnerText; }
选项2
如果您具有XML的XML模式,则可以将模式绑定到类(使用.NET xsd.exe工具)。一旦有了它,就可以将XML反序列化为一个对象,然后从该对象而不是原始XML对其进行处理。这本身就是一个完整的主题,因此,如果您确实有该架构,则值得研究。