
1,繼續添加ebm子節點
public static void CreateXml()
{
//創XML建對象
XmlDocument doc = new XmlDocument();
//聲明根節點
XmlElement books;
//判斷文件是否存在
if (File.Exists("d://Test.xml"))
{
//該文件存在
//加載文件
doc.Load("d://Test.xml");
//獲得根節點
books = doc.DocumentElement;
}
else//該文件不存在
{
//創建聲明
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
doc.AppendChild(dec);
//創建根節點
books = doc.CreateElement("EBD");
doc.AppendChild(books);
}
//開始正常寫入信息就可以了
XmlElement xml = doc.CreateElement("EBM");
books.AppendChild(xml);
XmlElement ebmId = doc.CreateElement("EBMID");
ebmId.InnerText = "1";
xml.AppendChild(ebmId);
XmlElement areaCode = doc.CreateElement("AreaCode");
areaCode.InnerText = "360699999901";
xml.AppendChild(areaCode);
XmlElement startTime = doc.CreateElement("StartTime");
startTime.InnerText = "2018-07-26 9:06:04";
xml.AppendChild(startTime);
XmlElement endTime = doc.CreateElement("EndTime");
endTime.InnerText = "2018-07-26 7:22:04";
xml.AppendChild(endTime);
XmlElement msgType = doc.CreateElement("MsgType");
msgType.InnerText = "1";
xml.AppendChild(msgType);
doc.Save("d://Test.xml");
}
2, 修改某個子節點(通過EBMID確定具體的節點)
public static void UpdateXmlForEBMID(string ebmId)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("d://Test.xml");
var xns = xmlDoc.SelectSingleNode("EBD");
XmlNodeList xnl = xns.ChildNodes;
foreach(XmlNode xn in xnl )
{
XmlElement xe = (XmlElement)xn;
XmlNodeList xnl2 = xe.ChildNodes;
foreach (XmlNode xn2 in xnl2)
{
XmlElement xe2 = (XmlElement)xn2;
if (xe2.InnerText.Equals(ebmId))
{
XmlNodeList elemList = xe.GetElementsByTagName("MsgType");
elemList[0].InnerXml = "2";
}
break;
}
//break;//如果更新完了指定節點,有需要則退出循環
}
xmlDoc.Save("d://Test.xml");//保存的該XML文件,否則更新無效
}
3,讀取某個子節點下的所有屬性值(這邊也是通過EBMID去匹配)
public static void ReadXMLForLog(string xmlPath,string ebmId)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("d://Test.xml");
var xns = xmlDoc.SelectSingleNode("EBD");
XmlNodeList xnl = xns.ChildNodes;
Dictionary<string, string> obj = new Dictionary<string, string>();
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
XmlNodeList xnl2 = xe.ChildNodes;
foreach (XmlNode xn2 in xnl2)
{
XmlElement xe2 = (XmlElement)xn2;
if (xe2.InnerText.Equals("2"))
{
var objs = new {
EBMID = xe.GetElementsByTagName("EBMID"),
AreaCode = xe.GetElementsByTagName("AreaCode"),
StartTime= xe.GetElementsByTagName("StartTime"),
EndTime = xe.GetElementsByTagName("EndTime"),
MsgType = xe.GetElementsByTagName("MsgType"),
};
string ebmIdValue = objs.EBMID[0].InnerText;
}
break;
}
}
}
