使用ASP.net和VB.net(或c#)编辑和删除XML文件中的数据

本文关键字:net XML 删除 文件 数据 编辑 VB ASP 使用 | 更新日期: 2023-09-27 18:13:57

在我的web应用程序,我有一个名为"answerswers.xml"的XML文件

它将用户条目存储在XML

<?xml version=""1.0""?> <Answers>  
<AnswerSet> <Answer questionId=""MRN"">4444</Answer> 
<Answer questionId=""FName"">test</Answer> 
<Answer questionId=""LName"">patient</Answer> 
<Answer questionId=""AddressPt"">blah blah</Answer> 
<Answer questionId=""Governorate"">xxxx</Answer> 
<Answer questionId=""InitialCSF"">Negative</Answer> 
<Answer questionId=""Diagnosis""></Answer> 
<Answer questionId=""Description""> </Answer>   
</AnswerSet>   
<AnswerSet> 
<Answer questionId=""MRN"">1</Answer> 
<Answer questionId=""FName"">1</Answer> 
<Answer questionId=""LName"">1</Answer> 
<Answer questionId=""AddressPt"">1</Answer> 
<Answer questionId=""InitialCSF"">Positive</Answer> 
<Answer questionId=""Diagnosis"">dx</Answer> 
<Answer questionId=""Description""> </Answer>   
</AnswerSet>  </Answers>

我可以使用从网上下载的DLL文件向XML文件添加数据。我需要一种方法来改变数据(编辑/删除)在xml文件使用ASP.net/VB.net或c#

使用ASP.net和VB.net(或c#)编辑和删除XML文件中的数据

我更喜欢使用XDocument,因为您可以简单地搜索它并更改元素或属性:

XDocument doc1 = XDocument.Parse("<AnswerSet> <Answer questionId='"10'" FName='"test'"> </Answer></AnswerSet> ");
// or if you have related file simply use XDocument doc1 = XDocument.Load(fileFullName);
var element =
      doc1.Descendants("AnswerSet").Elements("Answer")
      .Where(x => x.Attribute("FName") != null 
            && x.Attribute("FName").Value == "test").SingleOrDefault();
if (element != null)
{
   var attr = element.Attribute("FName");
   attr.Value = "Changed";
}
doc1.Save(filePath);

编辑: Descendants("AnswerSet")查找AnswerSet元素,elements ("Answer")查找Answer elements,

Where(x => x.Attribute("FName") != null 
            && x.Attribute("FName").Value == "test").SingleOrDefault();

找到元素,其中包含属性FName和属性值等于test, SingleOrDefault在最后,说你应该只有一个这样的元素,你也可以改变它(只是调用ToList())找到所有相关的元素,最后在if我将改变元素的值,最后我们再次保存它与改变值。

这个语言(linq2xml)太简单了,像DescendantElements这样的函数在其中使用的最多的是完整的函数,所以不需要有特殊的知识,你可以简单地通过了解这些函数来解决许多问题。

您可以使用。net附带的XmlDocument类。不需要下载任何东西。还是我错过了什么?

我发现的第一件事是,它是针对VB的,但c#的概念是一样的。
http://support.microsoft.com/kb/317662

您可以加载任何xml文件,然后使用XPath访问任何节点并对其进行更改。

您看过XmlDataSource控件了吗?