加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XDocument操作xml文件基本操作

发布时间:2020-12-16 09:14:19 所属栏目:百科 来源:网络整理
导读:一、读取 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/c


一、读取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的操作。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读