private void SaveFile()
{
XmlDocument doc=new XmlDocument();
doc.Load("C:\\Test.xml");
XmlNode Buses=doc.SelectSingleNode("//Buses");
XmlNode oldPlateNumber=doc.SelectSingleNode("//YES-6548");
XmlElement PlateNumber=doc.CreateElement("DUS-456");
XmlElement VIN=doc.CreateElement("VIN");
VIN.InnerText=textBox1.Text;
if(oldPlateNumber!=null)
{
Buses.ReplaceChild(PlateNumber,oldPlateNumber);
}
else
{
PlateNumber.AppendChild(VIN);
Buses.AppendChild(PlateNumber);
}
doc.save("C:\\Test.xml"}
所以代码应该在名为Plate Number的Buses下创建一个元素,它有另一个名为VIN的子元素。
如果PlateNumber不存在,我想在PlateNumber下创建一个新元素。如果它存在,我想使用ReplaceChild重写PlateNumber。
奇怪的是,当我摆脱if子句时,Buses.ReplaceChild(PlateNumber,oldPlateNumber)替换现有节点。但是当我尝试检测节点是否存在时,VIN为空。
有人说明了这个原因吗?我在检测现有节点时做错了吗?
另外,我刚刚发现了LINQ。不再使用XmlDocument会更容易吗?
由于
编辑---------
答案 0 :(得分:1)
我觉得你在下一步之前忘了保存xml
{{1}}