微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

XDocument操作xml文件基本操作


一、读取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文件

stringnewXmlPath="F:\公司\学习例子\123.xml"

XDocumentnewDoc =new XDocument();

newDoc = XDocument.Load(strXmlPath);

//将选取的元素集添加123.xml文件的根节点下

StringrootEle=newDoc.Root;

//统计新元素的个数,进行添加到新文件的操作。

int newElementEleCollCount= newElementEleColl.Count;

//将选取的元素,添加到新的文档中

for(int j = 0; j<newElementEleCollCount; 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.5Linq for XML准备的轻量级Documnet对象,在功能XmlDocument基本差不多,但是此种方式配合Linq使用,更方便简单而已。感觉很类似于sqllinq的操作。

原文地址:https://www.jb51.cc/xml/297053.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。