一、读取
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”);
//把根节点添加到新的xml文件中中
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
文件,创建方式同上。
2
)找到
suit
下的子元素,添加到
123.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
文件
string
new
XmlPath
=”
F:\公司\学习例子
\123
.xml
”
XDocument
new
Doc =new XDocument();
new
Doc = XDocument.Load(strXmlPath);
//
将选取的元素集添加到
123.xml
文件的根节点下
String
rootEle
=new
Doc
.
Root
;
//统计新元素的个数,进行添加到新文件的操作。
int newElementEleColl
Count
= newElementEleColl.Count;
//将选取的元素,添加到新的文档中
for(int j = 0; j<newElementEleColl
Count
; j++){
rootEle.Add(newElementEleColl[j]);
}
123.xml
文件的新内容展示:
<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
的操作。