XML节点属性在填充时返回为NULL?

时间:2018-10-19 16:44:52

标签: c# xml

我有一个XML文档,正在提取一个特定的Node及其所有属性。在调试模式下,我可以看到我正在获取特定的节点及其所有属性。但是,当我尝试获取属性值时,找不到它并返回NULL值。我已经进行了一些搜索,并查看了一些示例,从这些内容可以看出我应该获得价值,但是我没有,我也看不出我在做错什么。

我正在尝试获取StartTime值。

这是返回的XML。 enter image description here

在这里您可以在调试中看到,使用Text Visualizer可以看到该值。 enter image description here

我正在尝试的代码。

XmlNodeList nodes = xmlDoc.GetElementsByTagName("PlannedAbsences");
if (nodes != null && nodes.Count > 0)
{
    foreach (XmlNode node in nodes)
    {

        if (node.Attributes != null)
        {
            var nameAttribute = node.Attributes["StartTime"];
            if (nameAttribute != null)
            {
                //var startDate = nameAttribute.Value;
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

使用System.Xml.Linq命名空间中包含的XDocument类,从PlannedAbsences父级获取子元素,然后遍历子元素以检索所需属性的值。

var xmlDoc = XDocument.Load(@"path to xml file")
var absences = xmlDoc.Element("PlannedAbsences")?.Elements("Absence");
foreach (var item in absences)
{
    var xElement = item.Attribute("StartTime").Value;
    Console.WriteLine(xElement);
}