一、读取xml文件,现在存在这样一个DefaultStyle.xml
<span style="font-family:Microsoft YaHei;"><span style="font-size:18px;"><?xmlversion="1.0" encoding="utf-8" ?> <SiteConfig> <Suit Name="旅游"defPic="../Images/home-210.png"OnHoverPic="'../Images/channel-210.png','../Images/list-210.png','../Images/detail-210.png'"isNew="1" isFree="1"> <Home Name="旅游"TemplateName="Template0" ScriptName="Js0"StyleName="Css0" > <Nav TemplateName="Template0" ScriptName="Js0"StyleName="Css0" > </Nav> </Home> <ChannelTemplateName="Template0" ScriptName="Js0"StyleName="Css0" > <Nav TemplateName="Template0" ScriptName="Js0"StyleName="Css0" > </Nav> </Channel> <NewsListTemplateName="Template0" ScriptName="Js0"StyleName="Css0" > <Nav TemplateName="Template0" ScriptName="Js0"StyleName="Css0" > </Nav> </NewsList> <ArticleTemplateName="Template0" ScriptName="Js0"StyleName="Css0" > <Nav TemplateName="Template0" ScriptName="Js0"StyleName="Css0" > </Nav> </Article> </Suit> <Suit Name="简洁"defPic="../Images/home-205.png"OnHoverPic="'../Images/channel-205.png','../Images/list-205.png','../Images/detail-205.png'"isNew="1" isFree="1"> <Home Name="简洁"TemplateName="Template0" ScriptName="Js0"StyleName="Css0" > <Nav TemplateName="Template0" ScriptName="Js0"StyleName="Css0" > </Nav> </Home> <ChannelTemplateName="Template0" ScriptName="Js0"StyleName="Css0" > <Nav TemplateName="Template0" ScriptName="Js0"StyleName="Css0" > </Nav> </Channel> <NewsListTemplateName="Template0" ScriptName="Js0"StyleName="Css0" > <Nav TemplateName="Template0" ScriptName="Js0"StyleName="Css0" > </Nav> </NewsList> <ArticleTemplateName="Template0" ScriptName="Js0"StyleName="Css0" > <Nav TemplateName="Template0" ScriptName="Js0"StyleName="Css0" > </Nav> </Article> </Suit> </SiteConfig></span></span>
读取XML文件:
//该路径下的文件
string strXmlPath="F:\公司\学习例子\DefaultStyle.xml"
XDocument defaultDoc = new XDocument();
defaultDoc = XDocument.Load(strXmlPath);
二、创建xml文件:
XDocument newSuitXml=new XDocument();
XElement rootEle = newXElement("SiteConfig");
newSuitXml.Add(rootEle);
//把文件123.xml保存到指定路径
newSuitXml.Save("F:\公司\学习例子\123.xml");
<span style="font-family:Microsoft YaHei;"><span style="font-size:18px;"><?xmlversion="1.0" encoding="utf-8"?> <SiteConfig> </SiteConfig></span></span>
三、复制某些节点到xml文件中:
业务需求:
读取DefaultStyle.Xml中根节点下的Name="简洁"的Suit配置节信息到123.xml文件中
1)//读取DefaultStyle.Xml文件,创建方式同上。
//读取DefaultStyle.Xml中根节点下的Name="简洁"的Suit配置节信息,复制信息不包括Suit节点
//获取根节点
XElement RootEle = defaultDoc.Root;
//找到Name="简洁"的Suit节点
//获取根元素下的所有节点
List<XElement>selecedtElements=RootEle.Elements().ToList();
//Default.xml找到选中套装的配置节点
XElement SelectEle = null;
//找到Name="简洁"的Suit节点
for (int i = 0; i <suitElements.length; i++)
{
if (suitElements[i].Attribute("Name").Value=="简约")
{
SelectEle =suitElements[i];
}
}
//找到该元素下的所有集合,然后需要添加到123.xml的根目录下
List<XElement> newElementEleColl =SelectEle.Elements().ToList();
3)加载123.xml文件
stringnewXmlPath="F:\公司\学习例子\123.xml"
XDocumentnewDoc =new XDocument();
newDoc = XDocument.Load(strXmlPath);
StringrootEle=newDoc.Root;
int newElementEleCollCount= newElementEleColl.Count;
//将选取的元素,添加到新的文档中
for(int j = 0; j<newElementEleCollCount; j++){
rootEle.Add(newElementEleColl[j]);
}
<span style="font-family:Microsoft YaHei;"><span style="font-size:18px;"><?xmlversion="1.0" encoding="utf-8"?> <SiteConfig> <Home Name="简洁"TemplateName="Template0" ScriptName="Js0"StyleName="Css0"> <Nav TemplateName="Template1"ScriptName="Js0" StyleName="Css0"></Nav> </Home> <ChannelTemplateName="Template0" ScriptName="Js0"StyleName="Css0"> <Nav TemplateName="Template1"ScriptName="Js0" StyleName="Css0"></Nav> </Channel> <NewsListTemplateName="Template0" ScriptName="Js0"StyleName="Css0"> <Nav TemplateName="Template1"ScriptName="Js0" StyleName="Css0"></Nav> </NewsList> <ArticleTemplateName="Template0" ScriptName="Js0"StyleName="Css0"> <Nav TemplateName="Template1"ScriptName="Js0" StyleName="Css0"></Nav> </Article> </SiteConfig></span></span>
四、总结
这里用到的是XDocument对象,它是.NET3.5为Linq for XML准备的轻量级Documnet对象,在功能上XmlDocument基本差不多,但是此种方式配合Linq使用,更方便简单而已。感觉很类似于sql到linq的操作。
原文链接:https://www.f2er.com/xml/297053.html