XDocument操作xml文件基本操作

  • Post author:
  • Post category:其他









一、读取


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


的操作。
















版权声明:本文为hxj135812原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。