使用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#
我更喜欢使用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)太简单了,像Descendant
和Elements
这样的函数在其中使用的最多的是完整的函数,所以不需要有特殊的知识,你可以简单地通过了解这些函数来解决许多问题。
您可以使用。net附带的XmlDocument类。不需要下载任何东西。还是我错过了什么?
我发现的第一件事是,它是针对VB的,但c#的概念是一样的。
http://support.microsoft.com/kb/317662
您可以加载任何xml文件,然后使用XPath访问任何节点并对其进行更改。
您看过XmlDataSource控件了吗?