ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-05-30 19:55:44  阅读:257  来源: 互联网

标签:c asp-net vb-net xml linq-to-xml


在我的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大多数都使用了完整的函数,因此不需要具备特殊知识就可以通过了解这些函数来解决许多问题.

标签:c,asp-net,vb-net,xml,linq-to-xml
来源: https://codeday.me/bug/20190530/1185635.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有