2011-06-08 40 views
1

我想讀取XML文件並在列表視圖中加載內容。將XML文件輸出到列表視圖

起初XML的文件:

<?xml version="1.0"?> 

<Budget_Table> 

    <budgets> 

     <Einnahmen>10€</Einnahmen> 
     <Anmerkung_Einnahme>Win</Anmerkung_Einnahme>  
     <Ausgaben>6€</Ausgaben> 
     <Anmerkung_Ausgabe>Pizza</Anmerkung_Ausgabe> 
     <Datum>12.03.2011</Datum> 
    </budgets> 

    <budgets> 
     <Einnahmen></Einnahmen> 
     <Anmerkung_Einnahme></Anmerkung_Einnahme> 
     <Ausgaben>6€</Ausgaben> 
     <Anmerkung_Ausgabe>Pizza</Anmerkung_Ausgabe> 
     <Datum>20.03.2011</Datum> 
    </budgets> 

</Budget_Table> 

確定這是XML的文件。 在行是內容。 應用程序應該像預算書一樣。

現在的列表視圖和整個問題... 我不知道我應該如何實現代碼。 我應該使用Dataset,Datatables,Linq嗎? 什麼好?

最後,我用魔杖編輯數據,刪除並添加。 所以我也必須寫入xml。

我可以這樣做:

DataSet dataset= new DataSet(); 
dataset.ReadXml("budget.xml"); 

但後來我怎麼能讀取標籤? ,...所有這些都是列表視圖中的列。 我怎樣才能正確使用它們?

希望你能給我一些幫助。

回答

0

創建一個預算模型(類):

public class Budget{ 
public string Einnahmen {get; set;} 
public string AnmerkungEinnahme {get; set;} 
public string Ausgaben {get; set;} 
public string AnmerkungAusgabe {get; set;} 
public DateTime Datum {get; set;} 
} 

然後,使用Linq填充的預算項目的集合:

public static List<Budget> GetBudgets() 
{ 
    XDocument data = XDocument.Load(HttpContext.Current.Server.MapPath("~/Data/Budgets.xml")); 

    return (from b in data.Descendants("Budget") 
      orderby b.Attribute("Datum") 
      select new Budget() 
      { 
       Einnahmen = b.Element("Einnahmen").Value, 
       AnmerkungEinnahme= b.Element("Anmerkung_Einnahme").Value, 
       Ausgaben = b.Element("Ausgaben").Value, 
       AnmerkungAusgabe= b.Element("Anmerkung_Ausgabe").Value, 
       Datum = b.Element("Datum").Value 

      }).ToList(); 
} 

您可以將您的ListView現在綁定到該對象和使用<%# Eval("Einnahmen")%>結構輸出正確的數據。

希望這會有所幫助! Chris。

0

,你可以選擇你想要什麼用select方法從數據集中像

dataset.Tables["budgets"].Select("where Anmerkung_Einnahme=Win"); 

,或者您可以使用XPath查詢您的XML文件,將軟件加載到XmlDocument對象

XmlDocument doc = new XmlDocument(); 
doc.Load("FullPath"); 
XmlNode = doc.SelectNodes(@"/Budget_Table/budgets[Anmerkung_Einnahme=Win]"); 

這兩個示例將返回所有budegts節點與Anmerkung_Einnahme = Win;

更新您的XML,你可以設置你選擇的任何節點的屬性,然後保存到XmlDocument文件

doc.Save("FullPath");