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 文件。在行中是内容。该应用程序应该类似于预算书。

现在 Listview 和整个问题......我不知道我应该如何实现代码。我应该使用数据集、数据表、Linq 吗?有什么好的?

最后我想编辑数据,删除和添加。所以我也必须写入xml。

我可以:

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

但是,我怎样才能阅读标签?, ... 所有这些都是 Listview 中的列。我怎样才能正确使用它们?

希望你能给我一些帮助。

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 填充预算项的集合:

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 文件加载到XmlDocumentObject中来查询它

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

这两个示例将返回 Anmerkung_Einnahme=Win 的所有预算节点;

要更新您的 xml,您可以设置您选择的任何节点的属性,然后将其保存XmlDocument到文件中

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