我有一个这样的XML文件:我正在为数据库中的记录数创建事件节点。
<event_list>
<event>
<servername></servername>
</event>
<event>
<servername></servername>
</event>
<event>
<servername></servername>
</event>
<event>
<title></title>
</event>
</event_list>
我将从数据库中获得服务器的价值。我无法将每个服务器名称传递给相应的节点。相反,我最终用最后一个服务器名称更新所有四个节点,并具有以下功能:
public static XmlDocument OpenXmlFile(string fileLocation, List<ServiceObjects> Sqldata)
{
eventlist_location = @"C:\Temp\List.xml";
XMLFileManagement FM = new XMLFileManagement();
FM.CreateXML(eventlist_location);
XmlDocument template = new XmlDocument();
template.Load(fileLocation);
XmlDocument Neweventlist = new XmlDocument();
for (var item in Sqldata)
{
XmlNamespaceManager namespaces = new XmlNamespaceManager(template.NameTable);
namespaces.AddNamespace("n", "http://www.hp.com/2009");
XmlNode node = template.SelectSingleNode(".//n:event", namespaces);
Neweventlist.Load(eventlist_location);
Neweventlist.DocumentElement.AppendChild(Neweventlist.ImportNode(template.DocumentElement, true));
XmlNamespaceManager nsmgr = new XmlNamespaceManager(Neweventlist.NameTable);
namespaces.AddNamespace("abc", "http://www.hp.com/2009");
foreach (XmlNode Xnode in Neweventlist.SelectNodes(".//*", namespaces))
{
if (Xnode.Name == "servername")
Xnode.InnerText = item.ServerName.ToString();
}
Neweventlist.Save(eventlist_location);
}
return Neweventlist;
}