2

私はそのデータを読み込んで出力したいxmlファイルを持っています。私のxmlは以下のようなものです:

<?xml version="1.0" encoding="UTF-8"?>
<serverfiles>
    <file name="picture1.jpg"/>
    <file name="file1.txt"/>
    <folder name="subfolder">
        <file name="picture2.jpg"/>
        <file name="file2.txt"/>
        <folder name="anotherfolder">
            <file name="file3.txt"/>
        </folder>
    </folder>
    <folder name="anotherfolder"/>      
</serverfiles>

そして、それを次のように出力したい:

picture1.jpg
file1.txt
subfolder\picture2.jpg
subfolder\file2.txt
subfolder\anotherfolder\file3.txt

私はこれを試しました:

  string xml = new WebClient().DownloadString("");
 XmlDocument xdoc = new XmlDocument();
 xdoc.LoadXml(xml);

 XmlElement element = xdoc.DocumentElement;

 XmlAttributeCollection attr_coll = element.Attributes;

 for(int i = 0; i < attr_coll.Count; i++)
 {
     string attr_name = attr_coll[i].Name;
 }

しかし、forループカウントでは、誰かが私を助けてくれませんか。

4

3 に答える 3

1

Xパスを使用することもできます:

        foreach (XmlNode file in xdoc.SelectNodes("//file"))
        {
            string filename = file.Attributes["name"].Value;

            foreach (XmlNode folder in file.SelectNodes("./ancestor::folder"))
            {
                string foldername = folder.Attributes["name"].Value;
                filename = foldername + "\\" + filename;
            }
            System.Diagnostics.Debug.WriteLine(filename);
        }

このコード例は、xml で動作します。

あなたの探求を頑張ってください。

于 2013-04-14T17:47:29.140 に答える