在我的 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文件中。 我需要一种方法来改变xml文件中的数据(编辑/删除),使用ASP.net / VB.net或C#
答案 0 :(得分:3)
我更喜欢使用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(“答案”)找到答案元素,
Where(x => x.Attribute("FName") != null
&& x.Attribute("FName").Value == "test").SingleOrDefault();
找到包含属性FName
且属性值等于test
的元素,在最后一个SingleOrDefault
,说你应该只有一个这样的元素,你也可以改变它(只是调用ToList()
)查找所有相关元素,最后在if
中我将更改元素的值,最后我们再次使用更改的值保存它。
这种语言(linq2xml)太简单了,像Descendant
和Elements
这样的函数最常用的是函数,所以不需要特殊的知识就可以解决很多问题了解这些功能。
答案 1 :(得分:2)
您可以使用.Net附带的XmlDocument类。无需下载任何东西。 或者我会错过什么?
我发现的第一件事是,它适用于VB,但c#的概念保持不变 http://support.microsoft.com/kb/317662
您只需加载任何xml文件,然后使用XPath访问任何节点并进行更改。
答案 2 :(得分:1)
您是否看过XmlDataSource控件。