Check if an element exists in XML

半世苍凉 提交于 2019-12-22 12:54:33

问题


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>

Code:

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);
        }
    }

I have an xml writer program that edits the above xml. The Files element can be changed to Folder element. I have another program that reads the values(file locations) and do something with it, I have to check first if the element is a Files or Folders element.


回答1:


You can check for element existence with something like

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

But i'm not sure what you are asking here exactly...




回答2:


This may be what you want to do:

if(configutation.Elements.First("Files") != null)
{
    string[] files = configuration.Element("Files").Elements("File").Select(c => c.Value).ToArray();
}

Hope this helps!



来源:https://stackoverflow.com/questions/12276533/check-if-an-element-exists-in-xml

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!