如何在 C# 中读取、存储和删除 xml 数据

Posted

技术标签:

【中文标题】如何在 C# 中读取、存储和删除 xml 数据【英文标题】:How to read, store and delete xml data in C# 【发布时间】:2011-09-12 10:21:48 【问题描述】:
<SMSWall run="yes" nonstop="False">
    <starttime>10:15:25 PM</starttime>
    <endtime>10:15:25 PM</endtime>
</SMSWall>
<MediaPlayer run="yes" nonstop="False">
    <starttime>10:15:25 PM</starttime>
    <endtime>10:15:25 PM</endtime>
</MediaPlayer>
<Bidding run="yes" nonstop="False">
    <starttime>10:15:25 PM</starttime>
    <endtime>10:15:25 PM</endtime>
</Bidding>

这是我的 xml 文件。现在我想读取 xml,将值存储在变量中(并且还希望从字符串中读取数据),然后保留 .xml 文件以便可以将其删除。我还想像读取节点一样明智地读取值:

XmlDocument document = new XmlDocument();
document.Load("Schedule.xml");
XmlNode ht=document.SelectSingleNode("SMSWall/@run");

【问题讨论】:

【参考方案1】:

您当前的 XML 文件格式不正确(即保存为 .xml 并用 IE 打开,您会报错)。所以你应该添加&lt;root&gt; ... &lt;/root&gt;(或其他名称)。 总之,我认为处理 XML 的最佳方法是使用 System.Xml.Linq 库,例如 XDocumentXElement

Loading data: XDocument.Load(filename);
Creating item: XElement root = new XElement("Root");
Searching: document.Descendants("Root"), ...

有关其他示例,请参阅 MSDN。

【讨论】:

okey 这是我的 .xml 文件的一部分。我只想知道我已经使用该代码读取了这些值。但是如果我将它们存储在数据集中,我该如何做同样的事情。 【参考方案2】:

我更喜欢创建一个DataSet,然后像这样使用它:

DataSet1 ds = new DataSet1();
ds.ReadXml("test.xml", XmlReadMode.ReadSchema);
//do something
ds.WriteXml("test.xml", XmlReadMode.ReadSchema);

键入的DataSet 将为您提供键入的表和行。您可以通过索引或查询获取行。你可以找到更多关于here的信息。

【讨论】:

好吧。我已经看过这样的帖子。但问题是我如何从数据集中读取值,因为我正在从 .xml 文件中读取。并且还读取单个节点. 嘿 thnx 的帮助。我能在单词之后做什么,我的意思是如何从 .xml 文件中读取值。

以上是关于如何在 C# 中读取、存储和删除 xml 数据的主要内容,如果未能解决你的问题,请参考以下文章

请问如何从数据库中读取一个存储过程并把查询结果生成一个xml文件(c#)

c#中怎样读取xml文件中的数据,怎样动态将数据存储到xml文件中去?

如何在 c# 中读取由代码度量生成的这个 xml 文件

如何从存储过程中读取 c# oracle XmlType

C# XML 如何直接根据属性值 读取 对应的值 怎么写???

如何使用 c# 读取此代码覆盖率 xml 文件报告