XML noob在这里!所以我有一些xml数据:
<DataChunk>
<ResponseChunk>
<errors>
<error code=\"0\">
Something happened here: Line 1, position 1.
</error>
</errors>
</ResponseChunk>
</DataChunk>
Run Code Online (Sandbox Code Playgroud)
如何获取"错误"列表,我可以访问"错误代码"和以下文本说明?另外,我在c#中使用.net4.0 ...谢谢!
MrE*_*yes 56
将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;
Run Code Online (Sandbox Code Playgroud)
如果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;
}
Run Code Online (Sandbox Code Playgroud)
选项2
如果您有XML的XML架构,则可以将架构绑定到类(使用.NET xsd.exe工具).完成后,您可以将XML反序列化为对象,并使用该对象而不是原始XML进行处理.这本身就是一个完整的主题,所以如果你有模式,那么值得研究.
Jos*_*ger 23
您可以使用Linq to XML:
var doc = XDocument.Parse(xml);
var errors = from e in doc.Descendants("error")
select new
{
code = e.Attribute("code").Value,
msg = e.Value.Trim()
};
foreach (var e in errors)
{
// use e.code & e.msg
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您的输入XML 非常大,那么最好使用XMLReader.
| 归档时间: |
|
| 查看次数: |
77238 次 |
| 最近记录: |