C# Retrieving Data From XML File

Posted by Christopher MacKinnon on Stack Overflow See other posts from Stack Overflow or by Christopher MacKinnon
Published on 2011-06-21T19:58:22Z Indexed on 2011/06/22 0:23 UTC
Read the original article Hit count: 246

Filed under:
|
|

I seem to be having a problem with retrieving XML values with C#, which I know it is due to my very limited knowledge of C# and .XML.

I was given the following XML file

<PowerBuilderRunTimes>
    <PowerBuilderRunTime>
        <Version>12</Version>
        <Files>
            <File>EasySoap110.dll</File>
            <File>exPat110.dll</File>
            <File>pbacc110.dll</File>
        </File>
     </PowerBuilderRunTime>
</PowerBuilderRunTimes>

I am to process the XML file and make sure that each of the files in the exist in the folder (that's the easy part). It's the processing of the XML file that I have having a hard time with. Here is what I have done thus far:

var runtimeXml = File.ReadAllText(string.Format("{0}\\{1}", configPath, Resource.PBRuntimes));

                var doc = XDocument.Parse(runtimeXml);
                var topElement = doc.Element("PowerBuilderRunTimes");
                var elements = topElement.Elements("PowerBuilderRunTime");

                foreach (XElement section in elements)
                {
                    //pbVersion is grabbed earlier. It is the version of PowerBuilder
                    if( section.Element("Version").Value.Equals(string.Format("{0}", pbVersion ) ) )
                    {
                        var files = section.Elements("Files");

                        var fileList = new List<string>();

                        foreach (XElement area in files)
                        {
                            fileList.Add(area.Element("File").Value);
                        }
                    }
                }

My issue is that the String List is only ever populated with one value, "EasySoap110.dll", and everything else is ignored. Can someone please help me, as I am at a loss.

© Stack Overflow or respective owner

Related posts about c#

Related posts about .NET