1

XML ファイルを読み込んで、コンテンツをリストビューにロードしたいと考えています。

最初に XML ファイル:

<?xml version="1.0"?>

<Budget_Table>

    <budgets>

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

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

</Budget_Table>

わかりました、これは XML ファイルです。行にはコンテンツがあります。アプリは予算帳のようなものであるべきです。

今、リストビューと問題全体...コードをどのように実現すべきかわかりません。データセット、データテーブル、Linq を使用する必要がありますか? どうよ?

最後に、データを編集、削除、追加します。だから私もxmlに書き込む必要があります。

できます:

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

しかし、どうすればTAGを読むことができますか? 、...そしてこれらはすべてリストビューの列です。どうすればそれらを正しく使用できますか?

助けていただければ幸いです。

4

2 に答える 2

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 を使用して Budget アイテムのコレクションを設定します。

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();
}

リストビューをこのオブジェクトにバインドし、<%# Eval("Einnahmen")%>構造を使用して正しいデータを出力できるようになりました。

お役に立てれば!クリス。

于 2011-06-08T12:57:52.853 に答える
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]");

これら 2 つの例は、Anmerkung_Einnahme=Win のすべての予算ノードを返します。

xml を更新するには、選択した任意のノードのプロパティを設定し、XmlDocumentファイルに保存します。

 doc.Save("FullPath");
于 2011-06-08T13:00:03.163 に答える