gpt4 book ai didi

c# - C# 中的 XML 字段替换

转载 作者:数据小太阳 更新时间:2023-10-29 02:28:19 25 4
gpt4 key购买 nike

好的,所以,我有一个如下所示的 xml 文件:

<?xml version="1.0"?>
<Users>
<User ID="1">
<nickname>Tom</nickname>
<password>a password</password>
<host>anemail@hello.com</host>
<email>anemail</email>
<isloggedin>false</isloggedin>
<permission>10</permission>
</User>
<User ID="2">
<nickname>ohai</nickname>
<password>sercret</password>
<host>my@host</host>
<email>my@email</email>
<isloggedin>false</isloggedin>
<permission>1</permission>
</User>
<Users>

现在,首先,我会返回他们的 ID 号,所以,我有“2”。从那以后,我将需要进入并编辑其中的字段,然后重新保存 xml。所以基本上我需要的是打开文件,找到 User ID="2"的信息,然后重新保存 xml,在用户 2 中使用不同的值,而不影响文档的其余部分。

例子:

  <User ID="2">
<nickname>ohai</nickname>
<password>sercret</password>
<host>my@host</host>
<email>my@email</email>
<isloggedin>false</isloggedin>
<permission>1</permission>
</User>

//在此处进行修改,并以

结束
  <User ID="2">
<nickname>ohai</nickname>
<password>somthing that is different than before</password>
<host>the most current host that they were seen as</host>
<email>my@email</email>
<isloggedin>false</isloggedin>
<permission>1</permission>
</User>

等等

总结:我需要打开一个文本文件,通过ID号返回信息,编辑信息,重新保存文件。不影响用户 2 以外的任何东西

~谢谢!

最佳答案

有多种方法可以做到这一点 - 这是使用 XmlDocument,它适用于 .NET 1.x 及更高版本,并且只要您的 XML 文档不太长就可以正常工作:

// create new XmlDocument and load file
XmlDocument xdoc = new XmlDocument();
xdoc.Load("YourFileName.xml");

// find a <User> node with attribute ID=2
XmlNode userNo2 = xdoc.SelectSingleNode("//User[@ID='2']");

// if found, begin manipulation
if(userNo2 != null)
{
// find the <password> node for the user
XmlNode password = userNo2.SelectSingleNode("password");
if(password != null)
{
// change contents for <password> node
password.InnerText = "somthing that is different than before";
}

// find the <host> node for the user
XmlNode hostNode = userNo2.SelectSingleNode("host");
if(hostNode != null)
{
// change contents for <host> node
hostNode.InnerText = "the most current host that they were seen as";
}

// save changes to a new file (or the old one - up to you)
xdoc.Save("YourFileNameNew.xml");
}

如果您使用的是 .NET 3.5 及更高版本,您还可以检查 Linq-to-XML 以获得一种可能更简单的方法来操作您的 XML 文档。

马克

关于c# - C# 中的 XML 字段替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1532852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com