- - PR -
XMLの階層構造からディレクトリを作成する
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-11-01 15:47
初めて投稿します。
下記のXML("DirInfo.xml")を読み込み、ディレクトリ構造を作成するメソッドをC#で作成しています。 <item>要素の属性typeが'root'または'folder'の場合にディレクトリを作成します。 サンプルメソッド(readTest())を作成したのですが、同一階層に全てのディレクトリが作成されてしまいます。 再帰的処理でディレクトリ構造を作りたいのですが、その場合<item>要素のNodeListを元にでできるのでしょうか? DirInfo.xml---------------- <?xml version="1.0" encoding="UTF-8"?> <root> <item sceid="d0" type="root"> <name>folder0</name> <item sceid="f1" type="content" /> <item sceid="d1" type="folder"> <name>folder1</name> <item sceid="f2" type="content" /> <item sceid="d2" type="folder"> <name>folder2</name> <item sceid="d3" type="folder"> <name>folder3</name> <item sceid="f4" type="content" /> <item sceid="f11" type="content" /> </item> </item> </item> <item sceid="f6" type="content" /> </item> </root> //readTest()---------------- private void readTest() { string xmlPath = "DirInfo.xml";//読み込むXMLファイルパス string rootDir = "C:\\\\";//ディレクトリ作成先パス XmlDocument doc = new XmlDocument(); doc.Load(xmlPath); //item要素のNodeListを生成 XmlNodeList nl = doc.SelectNodes("//item"); foreach( XmlNode nd in nl) { //子要素がある場合 if(nd.HasChildNodes) { //属性'sceid'をディレクトリ名とする string sceid = nd.Attributes["sceid"].Value; Directory.CreateDirectory(Path.Combine(rootDir,sceid)); } } } |
|
投稿日時: 2005-11-01 17:11
< item >要素のNodeListを元にでできるのでしょうか?
それ以外に、階層の情報を持っているものは 無いと思います 再帰をちゃんと書くか、parentnode を見るか、どちらかに [ メッセージ編集済み 編集者: MMX 編集日時 2005-11-01 17:22 ] |
|
投稿日時: 2005-11-02 16:29
<item>要素のNodeListを生成し、再帰処理を実装し解決しました。
ありがとうございました。 |
1