一尘不染

如何在.NET中读取XML?

c#

XML新手!所以我有一些xml数据:

<DataChunk>
    <ResponseChunk>
        <errors>
            <error code=\"0\">
                Something happened here: Line 1, position 1.
            </error>
        </errors>
    </ResponseChunk>
</DataChunk>

我如何获得“错误”列表,可以在其中访问“错误代码”和下面的文本描述?另外,我在C#中使用.net4.0 …谢谢!


阅读 234

收藏
2020-05-19

共1个答案

一尘不染

将XML加载到中XmlDocument,然后使用xpath查询提取所需的数据。

例如

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的所有元素的。例如:

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对其进行处理。这本身就是一个完整的主题,因此,如果您确实有该架构,则值得研究。

2020-05-19