C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – XDocument Root.Elements()返回null大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试解析通过运行单元测试生成的xml文件,但xml.Root.Elements()将出现为null.

这里是xml的一个例:

<?xml version="1.0" encoding="UTF-8"?>
<TestRun id="2ece436d-907d-4f59-9c81-0544b2f4f7cd" name="redacted" runUser="redacted" xmlns="http://microsoft.com/scheR_113_11845@as/Visualstudio/TeamTest/2010">
  <TestSetTings name="Default Test SetTings" id="e00bb4af-1518-4b40-9905-19fa7b190f68">
    ... 
  </TestSetTings>
  <Times creation="2015-02-18T11:47:02.7188640-05:00" queuing="2015-02-18T11:47:03.1819103-05:00" start="2015-02-18T11:47:03.2819203-05:00" finish="2015-02-18T11:47:05.5571478-05:00" />
  <ResultSumMary outcome="Failed">
    <Counters @R_227_10586@l="74" executed="74" passed="73" error="0" Failed="1" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
  </ResultSumMary>

我想要检索< ResultSumMary>的结果,但是对xml.Root的所有Element()和Elements()调用都返回null.

var xml = XDocument.Load(resultFilE);
var outcome = xml.Root
    .Element("TestRun")
    .Element("ResultSumMary")
    .Attribute("outcome")
    .Value;

我尝试添加this answer中的命名空间,但我仍然得到相同的结果:

var xml = XDocument.Load(resultFilE);
XNamespace ns = "http://microsoft.com/scheR_113_11845@as/Visualstudio/TeamTest/2010";
var outcome = xml.Root
    .Element(ns + "TestRun")
    .Element("ResultSumMary")
    .Attribute("outcome")
    .Value;

另外,我不确定Root是否应该返回< TestRun>我是否尝试过运行xml.Root.Element(“ResultSumMary”),我仍然得到null.

我该如何阅读这个xml文件

解决方法

首先,XDocument.Root获取XML树的根元素.在你的情况下,它是TestRun.
并且,为了从本地名称和命名空间获取对象,您可以使用XName.Get(String,String)方法

因此,将代码更改为:

String ns = "http://microsoft.com/scheR_113_11845@as/Visualstudio/TeamTest/2010";
var outcome = xml.Root
            .Element(XName.Get("ResultSumMary",ns))
            .Attribute("outcome")
            .Value;

结果是:失败

大佬总结

以上是大佬教程为你收集整理的c# – XDocument Root.Elements()返回null全部内容,希望文章能够帮你解决c# – XDocument Root.Elements()返回null所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。