BOS*_*OSS 13 c# xml xmldocument
我有那个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>
Run Code Online (Sandbox Code Playgroud)
我想将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");
}
}
Run Code Online (Sandbox Code Playgroud)
然后尝试了另一个代码:
foreach (XmlElement element in xml.SelectNodes("//reminder"))
{
if (element.InnerText == "Alarm1")
{
XmlNode newvalue = xml.CreateElement("MODIFIED");
element.ReplaceChild(newvalue, element);
xml.Save("0.xml");
}
}
Run Code Online (Sandbox Code Playgroud)
但也不起作用....
编辑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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它使Alarm1成为了
<MODIFIED />
Run Code Online (Sandbox Code Playgroud)
编辑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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我非常感谢你的帮助和感谢.
aar*_*lin 16
试试这个:
xml.SelectSingleNode("//reminder/Title").InnerText = "NewValue";
Run Code Online (Sandbox Code Playgroud)
你的foreach行只是循环遍历一个名为"提醒"的元素列表,而不是它的子节点.
查看此xpath教程以获取更多信息:
http://www.w3schools.com/xpath/xpath_intro.asp
| 归档时间: |
|
| 查看次数: |
63276 次 |
| 最近记录: |