2010-10-11 46 views
1

我有一個我想要使用智能設備(Pocket PC)輸出到外部XML文件的歌曲列表。在Pocket PC上寫入XML

String path = GetAppDir(); 
string filePath = path + @"\output\songs.xml"; 
XmlWriter xmlOut = XmlWriter.Create(filePath, settings); 


xmlOut.WriteStartDocument(); 
xmlOut.WriteStartElement("Songs"); 


foreach (Song songTmp in finalbasket) 
{ 
    xmlOut.WriteStartElement("Songs"); 
    xmlOut.WriteAttributeString("Name", songTmp.SongName); 
    xmlOut.WriteElementString("Artist", songTmp.SongArtist); 
    xmlOut.WriteElementString("Price", Convert.ToString(songTmp.SongPrice)); 
    xmlOut.WriteEndElement(); 
} 


xmlOut.WriteEndElement(); 


xmlOut.Close(); 

該應用程序似乎編寫的XML文件,但它總是空的。 'finalbasket'列表中的確有項目。任何想法我做錯了什麼?

回答

2

我想你的xmlOut.Close()前右需要一個

xmlOut.WriteEndDocument(); 

。此外,我不知道這是你的問題的一部分,但此行:

xmlOut.WriteStartElement("Songs"); 

也許應該是這樣的:

xmlOut.WriteStartElement("Song"); 
+0

還不行。我試過一些不同的文件名,它似乎根本沒有輸出文件,但沒有編譯錯誤。我是否需要將文件添加到我的項目中? – 2010-10-11 22:41:14

+0

這段代碼可能在'try/catch'塊中,它正在默默吞嚥任何錯誤?您的'GetApplicationDirectory'方法可能會在最後返回一個帶有「\」的路徑,這會導致'filePath'無效。在那種情況下,我通常使用'Path.Combine',所以我不必擔心它。 – MusiGenesis 2010-10-12 01:46:11

+0

手動調用Flush是否有所作爲? – ctacke 2010-10-12 03:20:24

相關問題