创建XML
/// <summary>
/// 创建XML
/// </summary>
/// <param name="XMLPath"></param>
public void CreateXMLFile(string XMLPath)
{
XmlDocument xmlDoc = new XmlDocument();
//加入XML的声明段落,Save方法不再xml上写出独立属性
xmlDoc.AppendChild(xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null));
//加入根元素
XmlElement xmlElem = xmlDoc.CreateElement("", "items", "");
xmlDoc.AppendChild(xmlElem);
FileName
//XmlElement xmlElemFileName = xmlDoc.CreateElement("FileName");
//XmlText xmlTextFileName = xmlDoc.CreateTextNode("书籍文件列表");
//xmlElemFileName.AppendChild(xmlTextFileName);
//xmlDoc.ChildNodes.Item(1).AppendChild(xmlElemFileName);
UserInfo
//XmlElement xmlElemUserInfo = xmlDoc.CreateElement("UserInfo");
//xmlDoc.ChildNodes.Item(1).AppendChild(xmlElemUserInfo);
UserName
//XmlElement xmlElemUsrName = xmlDoc.CreateElement("UserName");
//XmlText xmlTextUserName = xmlDoc.CreateTextNode("Arlice");//用户名
//xmlElemUsrName.AppendChild(xmlTextUserName);
//xmlDoc.ChildNodes.Item(1).ChildNodes[1].AppendChild(xmlElemUsrName);
ChineseBook
//XmlElement xmlElemChineseBook = xmlDoc.CreateElement("ChineseBook");
//xmlDoc.ChildNodes.Item(1).AppendChild(xmlElemChineseBook);
Book1
//XmlElement xmlElemBook1 = xmlDoc.CreateElement("Book1");
//xmlElemBook1.SetAttribute("BookCode", "001");
//xmlDoc.ChildNodes.Item(1).ChildNodes[2].AppendChild(xmlElemBook1);
BookName
//XmlElement xmlElemBookName = xmlDoc.CreateElement("BookName");
//XmlText xmlTextBookName = xmlDoc.CreateTextNode("小学语文");//书名
//xmlElemBookName.AppendChild(xmlTextBookName);
//xmlDoc.ChildNodes.Item(1).ChildNodes[2].ChildNodes[0].AppendChild(xmlElemBookName);
publishing house
//XmlElement xmlElemPh = xmlDoc.CreateElement("PublishingHouse");
//XmlText xmlTextPh = xmlDoc.CreateTextNode("电子工业出版社");
//xmlElemPh.AppendChild(xmlTextPh);
//xmlDoc.ChildNodes.Item(1).ChildNodes[2].ChildNodes[0].AppendChild(xmlElemPh);
xmlDoc.Save("D:\\ccccc.xml");
}
/// <summary>
/// 根据路径创建XML
/// </summary>
/// <param name="XMLPath"></param>
public void CreateAPPXMLFile(string XMLPath)
{
XmlTextWriter writer = new XmlTextWriter(XMLPath, null);
//使用自动缩进便于阅读
writer.Formatting = Formatting.Indented;
XmlDocument xmldoc = new XmlDocument();
XmlDeclaration xn = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
xmldoc.AppendChild(xn);
//写入根元素
writer.WriteStartElement("FoundareMenus");
//writer.WriteStartElement("item");
写入属性及属性的名字
//writer.WriteAttributeString("类别", "文学");
//writer.WriteAttributeString("品质", "优");
加入子元素
//writer.WriteElementString("title", "毛著");
//writer.WriteElementString("author", "毛泽东");
//writer.WriteElementString("price", "10.0");
//关闭根元素,并书写结束标签
writer.WriteEndElement();
//将XML写入文件并且关闭XmlTextWriter
writer.Close();
}
/// <summary>
/// 添加APP XML信息
/// </summary>
/// <param name="XMLPath">XML路径</param>
/// <param name="appBean">MXL信息</param>
/// <returns></returns>
public string AddXmlAppInfo(string XMLPath,FoundareAPPBean appBean)
{
//设置返回结果
string result = "";
if (XMLPath == null || XMLPath == "")
{
return "XML路径为空!";
}
if (appBean == null)
{
return "APP对象为空!";
}
try
{
XmlDocument xmldoc = new XmlDocument();
//将空的文档加载到XNL文件。
xmldoc.Load(XMLPath);
//创建新节点根节点
XmlNode FoundareApp = xmldoc.CreateNode(XmlNodeType.Element, "FoundareAPPBean", null);
//添加根节点下子节点
XmlElement APPID = xmldoc.CreateElement("APPID");
APPID.InnerText = appBean.APPID.ToString();
FoundareApp.AppendChild(APPID);
//添加根节点下子节点
XmlElement APPKey = xmldoc.CreateElement("APPKey");
APPKey.InnerText = appBean.APPKey.ToString();
FoundareApp.AppendChild(APPKey);
//添加根节点下子节点
XmlElement APPName = xmldoc.CreateElement("APPName");
APPName.InnerText = appBean.APPName.ToString();
FoundareApp.AppendChild(APPName);
//添加根节点下子节点
XmlElement APPImageUrl = xmldoc.CreateElement("APPImageUrl");
APPImageUrl.InnerText = appBean.APPImageUrl.ToString();
FoundareApp.AppendChild(APPImageUrl);
//添加根节点下子节点
XmlElement APPLicenseUrl = xmldoc.CreateElement("APPLicenseUrl");
APPLicenseUrl.InnerText = appBean.APPLicenseUrl.ToString();
FoundareApp.AppendChild(APPLicenseUrl);
//添加根节点下子节点
XmlElement APPDetailUrl = xmldoc.CreateElement("APPDetailUrl");
APPDetailUrl.InnerText = appBean.APPDetailUrl.ToString();
FoundareApp.AppendChild(APPDetailUrl);
//添加根节点下子节点
XmlElement APPDownLoadUrl = xmldoc.CreateElement("APPDownLoadUrl");
APPDownLoadUrl.InnerText = appBean.APPDownLoadUrl.ToString();
FoundareApp.AppendChild(APPDownLoadUrl);
//添加根节点下子节点
XmlElement APPTechSupportUrl = xmldoc.CreateElement("APPTechSupportUrl");
APPTechSupportUrl.InnerText = appBean.APPTechSupportUrl.ToString();
FoundareApp.AppendChild(APPTechSupportUrl);
//添加根节点下子节点
XmlElement IsNew = xmldoc.CreateElement("IsNew");
IsNew.InnerText = appBean.IsNew.ToString();
FoundareApp.AppendChild(IsNew);
//添加根节点下子节点
XmlElement AddDate = xmldoc.CreateElement("AddDate");
AddDate.InnerText = appBean.AddDate.ToString();
FoundareApp.AppendChild(AddDate);
//添加根节点下子节点
XmlElement IsFree = xmldoc.CreateElement("IsFree");
IsFree.InnerText = appBean.IsFree.ToString();
FoundareApp.AppendChild(IsFree);
//添加根节点下子节点
XmlElement APPClassBean = xmldoc.CreateElement("APPClassBean");
//APPClassBean.InnerText = appBean.APPClassBean.ToString();
//添加子节点下集合
//添加子节点下集合下子节点
XmlElement ClassID = xmldoc.CreateElement("ClassID");
ClassID.InnerText = appBean.APPClassBean.ClassID.ToString();
APPClassBean.AppendChild(ClassID);
//添加子节点下集合下子节点
XmlElement ClassName = xmldoc.CreateElement("ClassName");
ClassName.InnerText = appBean.APPClassBean.ClassName.ToString();
APPClassBean.AppendChild(ClassName);
//添加子节点下集合下子节点
XmlElement ClassKey = xmldoc.CreateElement("ClassKey");
ClassKey.InnerText = appBean.APPClassBean.ClassKey.ToString();
APPClassBean.AppendChild(ClassKey);
//添加子节点下集合下子节点
XmlElement ClassDescrible = xmldoc.CreateElement("ClassDescrible");
ClassDescrible.InnerText = appBean.APPClassBean.ClassDescrible.ToString();
APPClassBean.AppendChild(ClassDescrible);
//将集合节点添加到根节点中
FoundareApp.AppendChild(APPClassBean);
//将设置好的节点添加到指定父级节点中
xmldoc.DocumentElement.AppendChild(FoundareApp);
//保存到XML中
xmldoc.Save(XMLPath);
result = "OK";
}
catch (Exception)
{
return "Failure";
}
return result;
}
读取XML
/// <summary>
/// 得到指定路径下XML里面的APP信息
/// </summary>
/// <param name="XMLPath">XML路径</param>
/// <returns>APP集合</returns>
public List<FoundareAPPBean> GetAPPXMLInfo(string XMLPath)
{
List<FoundareAPPBean> FoundareAPPList = new List<FoundareAPPBean>();
try
{
XmlDocument xmldoc = new XmlDocument();
//将空的文档加载到XNL文件。
xmldoc.Load(XMLPath);
//得到顶层节点列表
XmlNodeList topNodes = xmldoc.DocumentElement.ChildNodes;
//循环得到所有APP信息
foreach (XmlElement xmlitem in topNodes)
{
//得到APP根节点
if (xmlitem.Name == "FoundareAPPBean")
{
//得到该节点的子节点
XmlNodeList nodelist = xmlitem.ChildNodes;
if (nodelist.Count > 0)//节点下是否有子节点
{
//创建APP对象
FoundareAPPBean APPBean = new FoundareAPPBean();
//获取APP信息
foreach (XmlElement appNode in nodelist)//读元素值
{
//得到节点名称
string appname = appNode.Name;
switch (appname)
{
case "APPID":
string appID = appNode.FirstChild.Value;
APPBean.APPID = Convert.ToInt32(appID == "" ? "0" : appID);
break;
case "APPKey":
string appKey = appNode.FirstChild.Value;
APPBean.APPKey = Convert.ToString(appKey == "" ? "0" : appKey);
break;
case "APPName":
string appName = appNode.FirstChild.Value;
APPBean.APPName = Convert.ToString(appName == "" ? "0" : appName);
break;
case "APPImageUrl":
string appImageUrl = appNode.FirstChild.Value;
APPBean.APPImageUrl = Convert.ToString(appImageUrl == "" ? "0" : appImageUrl);
break;
case "APPLicenseUrl":
string appLicenseUrl = appNode.FirstChild.Value;
APPBean.APPLicenseUrl = Convert.ToString(appLicenseUrl == "" ? "0" : appLicenseUrl);
break;
case "APPDetailUrl":
string appDetailUrl = appNode.FirstChild.Value;
APPBean.APPDetailUrl = Convert.ToString(appDetailUrl == "" ? "0" : appDetailUrl);
break;
case "APPDownLoadUrl":
string appDownLoadUrl = appNode.FirstChild.Value;
APPBean.APPDownLoadUrl = Convert.ToString(appDownLoadUrl == "" ? "0" : appDownLoadUrl);
break;
case "APPTechSupportUrl":
string appTechSupportUrl = appNode.FirstChild.Value;
APPBean.APPTechSupportUrl = Convert.ToString(appTechSupportUrl == "" ? "0" : appTechSupportUrl);
break;
case "IsNew":
string isNew = appNode.FirstChild.Value;
APPBean.IsNew = Convert.ToBoolean(isNew == "" ? "0" : isNew);
break;
case "AddDate":
string appDate = appNode.FirstChild.Value;
APPBean.AddDate = Convert.ToDateTime(appDate == "" ? "0000-00-00 00:00" : appDate);
break;
case "IsFree":
string isFree = appNode.FirstChild.Value;
APPBean.IsFree = Convert.ToBoolean(isFree == "" ? "0" : isFree);
break;
case "APPClassBean":
if (APPBean.APPClassBean == null)
{
APPBean.APPClassBean = new FoundareAPPClassBean();
}
//得到该节点的子节点集合
XmlNodeList APPClassBeanNodes = appNode.ChildNodes;
foreach (XmlElement ClassBeanNode in APPClassBeanNodes)
{
//得到节点名称
string ClassBeanNodeName = ClassBeanNode.Name;
switch (ClassBeanNodeName)
{
case "ClassID":
string classID = ClassBeanNode.FirstChild.Value;
APPBean.APPClassBean.ClassID = Convert.ToInt32(classID == "" ? "0" : classID);
break;
case "ClassName":
string className = ClassBeanNode.FirstChild.Value;
APPBean.APPClassBean.ClassName = Convert.ToString(className == "" ? "0" : className);
break;
case "ClassKey":
string classKey = ClassBeanNode.FirstChild.Value;
APPBean.APPClassBean.ClassKey = Convert.ToString(classKey == "" ? "0" : classKey);
break;
case "ClassDescrible":
string classDescrible = ClassBeanNode.FirstChild.Value;
APPBean.APPClassBean.ClassDescrible = Convert.ToString(classDescrible == "" ? "0" : classDescrible);
break;
}
}
break;
}
}
FoundareAPPList.Add(APPBean);
}
}
}
}
catch (Exception)
{
return null;
}
return FoundareAPPList;
}
修改和读入是一样的