如何使用c#检查xml文件是否为空

Aza*_*han 4 c# xml

大家好我想检查我的xml文件是否为空.我正在尝试将一个xml数据更新为另一个为此我使用以下代码.现在请告诉我如何检查我的xml文件是否有数据这是我用来更新我的xml文件的代码

protected void CheckUpdates()
{
    StringReader strReader = new StringReader("..\\xml\\Updatelist.xml");
    XmlReader reader = XmlReader.Create(strReader);
    try
    {
       while (reader.Read())
       {
           var originalXmlDoc = XDocument.Load("..\\xml\\list.xml"); var newXmlDoc = XDocument.Load("..\\xml\\Updatelist.xml");

           foreach (var newElement in newXmlDoc.Element("blocker").Elements("lst"))
           {
               newElement.Value.Trim();
               if (!originalXmlDoc.Element("blocker").Elements("lst")
                       .Any(oldElement => oldElement.Value.Trim().Equals(
                       newElement.Value.Trim(),
                       StringComparison.InvariantCultureIgnoreCase)))
                {
                   originalXmlDoc.Element("blocker").Add(new XElement("lst", newElement.Value));
                }
             }
             originalXmlDoc.Save("..\\xml\\list.xml", SaveOptions.None);

             XmlDocument doc = new XmlDocument();
             doc.Load("..\\xml\\Updatelist.xml");
             doc.DocumentElement.RemoveAll();
             doc.Save("..\\xml\\Updatelist.xml");
          }
       }
    catch (XmlException ex)
    {
       //Catch xml exception
       //in your case: root element is missing
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误

根级别的数据无效.第1行,第1位.

请告诉我如何检查我Updatelist.xml是否空了?

现在我收到了这个错误

Pan*_*vas 9

有两种方法可以做到.

第一种是读取文件并检查其结构,以查看其中是否有任何子项.请记住,属性ChildNodes仅返回XML DOM 特定级别的子.

XmlDocument xDoc = new XmlDocument();
if (xDoc.ChildNodes.Count == 0) { 
    // It is empty 
}else if (xDoc.ChildNodes.Count == 1) { 
    // There is only one child, probably the declaration node at the beginning
}else if (xDoc.ChildNodes.Count > 1) { 
    // There are more children on the **root level** of the DOM
}
Run Code Online (Sandbox Code Playgroud)

第二种方法XMLException是在加载文档时捕获相应的抛出.

try
{
    XmlDocument doc = new XmlDocument();
    doc.Load("test.xml");
}
catch (XmlException exc)
{
    //invalid file
}
Run Code Online (Sandbox Code Playgroud)

希望我帮忙!