gpt4 book ai didi

C# : Modify a xml node

转载 作者:可可西里 更新时间:2023-11-01 08:19:16 27 4
gpt4 key购买 nike

我有那个 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<reminders>
<reminder>
<Title>Alarm1</Title>
<Description>Desc1</Description>
<Time>03/07/2012 10:11AM</Time>
<snooze>1</snooze>
<repeat>None</repeat>
</reminder>
</reminders>

我想将 Alarm1 的 innertext 修改为另一个值,所以我编写了实际上复制整个节点的代码。

        XmlDocument xml = new XmlDocument();

xml.Load("0.xml");

XmlNodeList elements = xml.SelectNodes("//reminders");

foreach (XmlNode element in elements)
{
if (element.InnerText == "Alarm1")
{
XmlNode newvalue = xml.CreateElement("MODIFIED");
element.ReplaceChild(newvalue, element);

xml.Save("0.xml");
}
}

然后尝试另一个代码:

        foreach (XmlElement element in xml.SelectNodes("//reminder"))
{
if (element.InnerText == "Alarm1")
{
XmlNode newvalue = xml.CreateElement("MODIFIED");
element.ReplaceChild(newvalue, element);

xml.Save("0.xml");
}
}

但也不行....

编辑 1:[想出一个新代码]

        XmlDocument xml = new XmlDocument();

xml.Load("0.xml");

foreach (XmlElement element in xml.SelectNodes("//reminder"))
{
foreach (XmlElement element1 in element)
{
if (element.SelectSingleNode("//Title").InnerText == "Alarm1")
{
XmlNode newvalue = xml.CreateElement("MODIFIED");
element.ReplaceChild(newvalue, element1);

xml.Save("0.xml");
}
}
}

但是它让Alarm1变成了

<MODIFIED />

编辑 2:[我解决了 :D]好的,这是我能弄清楚的代码:

        XmlDocument xml = new XmlDocument();

xml.Load("0.xml");

foreach (XmlElement element in xml.SelectNodes("//reminder"))
{
foreach (XmlElement element1 in element)
{
if (element.SelectSingleNode("//Title").InnerText == "Alarm1")
{
MessageBox.Show(element1.InnerText);
XmlNode newvalue = xml.CreateElement("Title");
newvalue.InnerText = "MODIFIED";
element.ReplaceChild(newvalue, element1);

xml.Save("0.xml");
}
}
}

非常感谢您的帮助和感谢。

最佳答案

试试这个:

xml.SelectSingleNode("//reminder/Title").InnerText = "NewValue";

您的 foreach 行只是循环遍历称为“提醒”的元素列表,而不是子节点。

查看此 xpath 教程以获取更多信息:

http://www.w3schools.com/xpath/xpath_intro.asp

关于C# : Modify a xml node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9616163/

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