加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 06:46:29 所属栏目:asp.Net 来源:网络整理
导读:在我的Web应用程序中,我有一个名为“answers.xml”的 XML文件 它以XML格式存储用户条目 ?xml version=""1.0""? Answers AnswerSet Answer questionId=""MRN""4444/Answer Answer questionId=""FName""test/Answer Answer questionId=""LName""patient/Answer
在我的Web应用程序中,我有一个名为“answers.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文件中.
我需要一种方法来改变使用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)太简单了,像Descendant这样的函数和Elements大多数都使用了完整的函数,因此不需要具备特殊知识就可以通过了解这些函数来解决许多问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读