在 C# 中确定 XmlNode 是空还是 null?

Posted

技术标签:

【中文标题】在 C# 中确定 XmlNode 是空还是 null?【英文标题】:Determine if a XmlNode is empty or null in C#? 【发布时间】:2011-01-25 16:24:27 【问题描述】:

以下代码采用XmlNode 数据类型并使用XmlNode 内容填充DataSet 对象。然后我将数据集的内容写入文件。

public void PopulateDataSet(XmlNode node)

    XmlNodeReader reader = new XmlNodeReader(node);
    DataSet ds = new DataSet();
    ds.ReadXml(reader);

    system.Guid guid = System.Guid.NewGuid();
    string name = string.Format("01_2.xml", Utility.XmlOutputPath, Utility.XmlOutputFileName, guid.ToString());

    //need to write "Node empty" to file if XmlNode object is empty of null
    ds.WriteXml(name, XmlWriteMode.IgnoreSchema);

问题是我遇到了一种情况,它不会将内容写入文件。如何确定XmlNode 对象是空还是空?

【问题讨论】:

【参考方案1】:

您可以在创建XmlNodeReader之前立即检查节点参数是否为null或InnerTextInnerXml属性为null或为空。

【讨论】:

【参考方案2】:

如果节点为空,则使用 XmlElement 代替 get。

XmlElement currNode = (XmlElement) doc.DocumentElement.LastChild;
if (currNode.IsEmpty)

    ...

【讨论】:

以上是关于在 C# 中确定 XmlNode 是空还是 null?的主要内容,如果未能解决你的问题,请参考以下文章

C#如何在xmlnode中存储网站列表

函数 RemoveChild(XmlNode 节点)在 C# 中失败

如何在 C# 中使用 XmlDocument 和 XmlNode 修改现有 XML 文件

C# 中 XmlNode.SelectSingleNode(string xpath) 的正确用法是啥?

如何在 C# 中从 XmlNode 读取属性值?

确定槽内容是空还是空