c# - 检查 XML 中是否存在元素

标签 c# xml linq-to-xml

XML:

<CONFIGURATION>
<Files>
    <File>D:\Test\TestFolder\TestFolder1\TestFile.txt</File>
    <File>D:\Test\TestFolder\TestFolder1\TestFile01.txt</File>
    <File>D:\Test\TestFolder\TestFolder1\TestFile02.txt</File>
    <File>D:\Test\TestFolder\TestFolder1\TestFile03.txt</File>
    <File>D:\Test\TestFolder\TestFolder1\TestFile04.txt</File>
</Files>
<SizeMB>3</SizeMB>
<BackupLocation>D:\Log backups\File backups</BackupLocation>
</CONFIGURATION>

代码:

private void btnLinq_Click(object sender, EventArgs e)
    {
        queryData(@"D:\WatchMe1\backupconfig1.xml");
    }

static void queryData(string xmlFile)
    {
        var xdoc = XDocument.Load(xmlFile);
        var configuration = xdoc.Element("CONFIGURATION");
        string sizeMB = configuration.Element("SizeMB").Value;
        string backupLocation = configuration.Element("BackupLocation").Value;
        //need a code here to check if element <File> exist before executing the file array
        string[] files = configuration.Element("Files").Elements("File").Select(c => c.Value).ToArray();

        foreach (string file in files)
        {
            Console.WriteLine(file);
        }
    }

我有一个编辑上述 xml 的 xml 编写器程序。文件元素可以更改为文件夹元素。我有另一个程序读取值(文件位置)并用它做一些事情,我必须首先检查该元素是文件还是文件夹元素。

最佳答案

你可以用类似的东西检查元素是否存在

if(configuration.Elements("...").Any()){...}

但我不确定你在这里问的到底是什么......

关于c# - 检查 XML 中是否存在元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12276533/

相关文章:

.net - 在链式 XElement 轴方法中处理空引用的优雅方式

c# - 在 C# 中创建一个可以采用 double 、十进制和 float 而不重复代码的方法

c# - Xdocument,选择正确的节点

c# - 使用 DataContractSerializer 时在集合中保留元素名称

java - MVVM 数据绑定(bind)验证

java - 在 Servlet 中引用文件

java - Java 中的 XML 处理

.net - 如何使用 XDocument.XPathEvaluate 处理空命名空间?

c# - 是什么导致 SignInManager.SendTwoFactorCodeAsync 返回 false?

c# - 向项目添加 Postbuild 事件