乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      .net 操作XML小結(jié)

       yhb4000 2012-05-16

      using System.Xml;
      //初始化一個xml實例
      XmlDocument xml=new XmlDocument();

      //導(dǎo)入指定xml文件
      xml.Load(path);
      xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));

      //指定一個節(jié)點
      XmlNode root=xml.SelectSingleNode("/root");

      //獲取節(jié)點下所有直接子節(jié)點
      XmlNodeList childlist=root.ChildNodes;

      //判斷該節(jié)點下是否有子節(jié)點
      root.HasChildNodes;

      //獲取同名同級節(jié)點集合
      XmlNodeList nodelist=xml.SelectNodes("/Root/News");

      //生成一個新節(jié)點
      XmlElement node=xml.CreateElement("News");

      //將節(jié)點加到指定節(jié)點下,作為其子節(jié)點
      root.AppendChild(node);

      //將節(jié)點加到指定節(jié)點下某個子節(jié)點前
      root.InsertBefore(node,root.ChildeNodes[i]);

      //為指定節(jié)點的新建屬性并賦值
      node.SetAttribute("id","11111");

      //為指定節(jié)點添加子節(jié)點
      root.AppendChild(node);

      //獲取指定節(jié)點的指定屬性值
      string id=node.Attributes["id"].Value;

      //獲取指定節(jié)點中的文本
      string content=node.InnerText;

      //保存XML文件
      string path=Server.MapPath("~/file/bookstore.xml");
      xml.Save(path);
      //or use :xml.Save(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));

      二、具體實例

      在C#.net中如何操作XML
      需要添加的命名空間:
      using System.Xml;

      定義幾個公共對象:
      XmlDocument xmldoc ;
      XmlNode xmlnode ;
      XmlElement xmlelem ;

      1,創(chuàng)建到服務(wù)器同名目錄下的xml文件:


      方法一:
      xmldoc = new XmlDocument ( ) ;
      //加入XML的聲明段落,<?xml version="1.0" encoding="gb2312"?>
      XmlDeclaration xmldecl;
       xmldecl = xmldoc.CreateXmlDeclaration("1.0","gb2312",null);
       xmldoc.AppendChild ( xmldecl);

      //加入一個根元素
      xmlelem = xmldoc.CreateElement ( "" , "Employees" , "" ) ;
      xmldoc.AppendChild ( xmlelem ) ;
      //加入另外一個元素
      for(int i=1;i<3;i++)
      {

      XmlNode root=xmldoc.SelectSingleNode("Employees");//查找<Employees>
      XmlElement xe1=xmldoc.CreateElement("Node");//創(chuàng)建一個<Node>節(jié)點
      xe1.SetAttribute("genre","李贊紅");//設(shè)置該節(jié)點genre屬性
      xe1.SetAttribute("ISBN","2-3631-4");//設(shè)置該節(jié)點ISBN屬性

      XmlElement xesub1=xmldoc.CreateElement("title");
      xesub1.InnerText="CS從入門到精通";//設(shè)置文本節(jié)點
      xe1.AppendChild(xesub1);//添加到<Node>節(jié)點中
      XmlElement xesub2=xmldoc.CreateElement("author");
      xesub2.InnerText="候捷";
      xe1.AppendChild(xesub2);
      XmlElement xesub3=xmldoc.CreateElement("price");
      xesub3.InnerText="58.3";
      xe1.AppendChild(xesub3);

      root.AppendChild(xe1);//添加到<Employees>節(jié)點中
      }
      //保存創(chuàng)建好的XML文檔
      xmldoc.Save ( Server.MapPath("data.xml") ) ;

      //////////////////////////////////////////////////////////////////////////////////////
      結(jié)果:在同名目錄下生成了名為data.xml的文件,內(nèi)容如下,
      <?xml version="1.0" encoding="gb2312"?>
      <Employees>
        <Node genre="李贊紅" ISBN="2-3631-4">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
        </Node>
        <Node genre="李贊紅" ISBN="2-3631-4">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
        </Node>
      </Employees>


      方法二:
      XmlTextWriter xmlWriter;
         string strFilename = Server.MapPath("data1.xml") ;

         xmlWriter = new XmlTextWriter(strFilename,Encoding.Default);//創(chuàng)建一個xml文檔
         xmlWriter.Formatting = Formatting.Indented;
         xmlWriter.WriteStartDocument();
         xmlWriter.WriteStartElement("Employees");

         xmlWriter.WriteStartElement("Node");
         xmlWriter.WriteAttributeString("genre","李贊紅");
         xmlWriter.WriteAttributeString("ISBN","2-3631-4");

         xmlWriter.WriteStartElement("title");
         xmlWriter.WriteString("CS從入門到精通");
         xmlWriter.WriteEndElement();

         xmlWriter.WriteStartElement("author");
         xmlWriter.WriteString("候捷");
         xmlWriter.WriteEndElement();

         xmlWriter.WriteStartElement("price");
         xmlWriter.WriteString("58.3");
         xmlWriter.WriteEndElement();

         xmlWriter.WriteEndElement();

         xmlWriter.Close();
      //////////////////////////////////////////////////////////////////////////////////////
      結(jié)果:
      <?xml version="1.0" encoding="gb2312"?>
      <Employees>
        <Node genre="李贊紅" ISBN="2-3631-4">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
        </Node>
      </Employees>

      2,添加一個結(jié)點:

      XmlDocument xmlDoc=new XmlDocument();
      xmlDoc.Load(Server.MapPath("data.xml"));
      XmlNode root=xmlDoc.SelectSingleNode("Employees");//查找<Employees>
      XmlElement xe1=xmlDoc.CreateElement("Node");//創(chuàng)建一個<Node>節(jié)點
      xe1.SetAttribute("genre","張三");//設(shè)置該節(jié)點genre屬性
      xe1.SetAttribute("ISBN","1-1111-1");//設(shè)置該節(jié)點ISBN屬性

      XmlElement xesub1=xmlDoc.CreateElement("title");
      xesub1.InnerText="C#入門幫助";//設(shè)置文本節(jié)點
      xe1.AppendChild(xesub1);//添加到<Node>節(jié)點中
      XmlElement xesub2=xmlDoc.CreateElement("author");
      xesub2.InnerText="高手";
      xe1.AppendChild(xesub2);
      XmlElement xesub3=xmlDoc.CreateElement("price");
      xesub3.InnerText="158.3";
      xe1.AppendChild(xesub3);

      root.AppendChild(xe1);//添加到<Employees>節(jié)點中
      xmlDoc.Save ( Server.MapPath("data.xml") );

      //////////////////////////////////////////////////////////////////////////////////////
      結(jié)果:在xml原有的內(nèi)容里添加了一個結(jié)點,內(nèi)容如下,
      <?xml version="1.0" encoding="gb2312"?>
      <Employees>
        <Node genre="李贊紅" ISBN="2-3631-4">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
        </Node>
        <Node genre="李贊紅" ISBN="2-3631-4">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
        </Node>
        <Node genre="張三" ISBN="1-1111-1">
          <title>C#入門幫助</title>
          <author>高手</author>
          <price>158.3</price>
        </Node>
      </Employees>

      3,修改結(jié)點的值(屬性和子結(jié)點):

      XmlDocument xmlDoc=new XmlDocument();
      xmlDoc.Load( Server.MapPath("data.xml") );

      XmlNodeList nodeList=xmlDoc.SelectSingleNode("Employees").ChildNodes;//獲取Employees節(jié)點的所有子節(jié)點

      foreach(XmlNode xn in nodeList)//遍歷所有子節(jié)點
      {
      XmlElement xe=(XmlElement)xn;//將子節(jié)點類型轉(zhuǎn)換為XmlElement類型
      if(xe.GetAttribute("genre")=="張三")//如果genre屬性值為“張三”
      {
      xe.SetAttribute("genre","update張三");//則修改該屬性為“update張三”

      XmlNodeList nls=xe.ChildNodes;//繼續(xù)獲取xe子節(jié)點的所有子節(jié)點
      foreach(XmlNode xn1 in nls)//遍歷
      {
      XmlElement xe2=(XmlElement)xn1;//轉(zhuǎn)換類型
      if(xe2.Name=="author")//如果找到
      {
      xe2.InnerText="亞勝";//則修改
      }
      }
      }
      }
      xmlDoc.Save( Server.MapPath("data.xml") );//保存。

      //////////////////////////////////////////////////////////////////////////////////////
      結(jié)果:將原來的所有結(jié)點的信息都修改了,xml的內(nèi)容如下,
      <?xml version="1.0" encoding="gb2312"?>
      <Employees>
        <Node genre="李贊紅" ISBN="2-3631-4">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
        </Node>
        <Node genre="李贊紅" ISBN="2-3631-4">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
        </Node>
        <Node genre="update張三" ISBN="1-1111-1">
          <title>C#入門幫助</title>
          <author>亞勝</author>
          <price>158.3</price>
        </Node>
      </Employees>

      4,修改結(jié)點(添加結(jié)點的屬性和添加結(jié)點的自結(jié)點):
      XmlDocument xmlDoc=new XmlDocument();
      xmlDoc.Load( Server.MapPath("data.xml") );

      XmlNodeList nodeList=xmlDoc.SelectSingleNode("Employees").ChildNodes;//獲取Employees節(jié)點的所有子節(jié)點

      foreach(XmlNode xn in nodeList)
      {
      XmlElement xe=(XmlElement)xn;
      xe.SetAttribute("test","111111");

      XmlElement xesub=xmlDoc.CreateElement("flag");
      xesub.InnerText="1";
      xe.AppendChild(xesub);
      }
      xmlDoc.Save( Server.MapPath("data.xml") );

      //////////////////////////////////////////////////////////////////////////////////////
      結(jié)果:每個結(jié)點的屬性都添加了一個,子結(jié)點也添加了一個,內(nèi)容如下,
      <?xml version="1.0" encoding="gb2312"?>
      <Employees>
        <Node genre="李贊紅" ISBN="2-3631-4" test="111111">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
          <flag>1</flag>
        </Node>
        <Node genre="李贊紅" ISBN="2-3631-4" test="111111">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
          <flag>1</flag>
        </Node>
        <Node genre="update張三" ISBN="1-1111-1" test="111111">
          <title>C#入門幫助</title>
          <author>亞勝</author>
          <price>158.3</price>
          <flag>1</flag>
        </Node>
      </Employees>

      5,刪除結(jié)點中的某一個屬性:
      XmlDocument xmlDoc=new XmlDocument();
      xmlDoc.Load( Server.MapPath("data.xml") );
      XmlNodeList xnl=xmlDoc.SelectSingleNode("Employees").ChildNodes;
      foreach(XmlNode xn in xnl)
      {
      XmlElement xe=(XmlElement)xn;
      xe.RemoveAttribute("genre");//刪除genre屬性

      XmlNodeList nls=xe.ChildNodes;//繼續(xù)獲取xe子節(jié)點的所有子節(jié)點
      foreach(XmlNode xn1 in nls)//遍歷
      {
      XmlElement xe2=(XmlElement)xn1;//轉(zhuǎn)換類型
      if(xe2.Name=="flag")//如果找到
      {
      xe.RemoveChild(xe2);//則刪除
      }
      }
      }
      xmlDoc.Save( Server.MapPath("data.xml") );

      //////////////////////////////////////////////////////////////////////////////////////]
      結(jié)果:刪除了結(jié)點的一個屬性和結(jié)點的一個子結(jié)點,內(nèi)容如下,
      <?xml version="1.0" encoding="gb2312"?>
      <Employees>
        <Node ISBN="2-3631-4" test="111111">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
        </Node>
        <Node ISBN="2-3631-4" test="111111">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
        </Node>
        <Node ISBN="1-1111-1" test="111111">
          <title>C#入門幫助</title>
          <author>亞勝</author>
          <price>158.3</price>
        </Node>
      </Employees>

      6,刪除結(jié)點:
      XmlDocument xmlDoc=new XmlDocument();
      xmlDoc.Load( Server.MapPath("data.xml") );
      XmlNode root=xmlDoc.SelectSingleNode("Employees");
      XmlNodeList xnl=xmlDoc.SelectSingleNode("Employees").ChildNodes;
      for(int i=0;i<xnl.Count;i++)
      {
      XmlElement xe=(XmlElement)xnl.Item(i);
      if(xe.GetAttribute("genre")=="張三")
      {
      root.RemoveChild(xe);
      if(i<xnl.Count)i=i-1;
      }
      }
      xmlDoc.Save( Server.MapPath("data.xml") );

      //////////////////////////////////////////////////////////////////////////////////////]
      結(jié)果:刪除了符合條件的所有結(jié)點,原來的內(nèi)容:

      <?xml version="1.0" encoding="gb2312"?>
      <Employees>
        <Node genre="李贊紅" ISBN="2-3631-4">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
        </Node>
        <Node genre="李贊紅" ISBN="2-3631-4">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
        </Node>
        <Node genre="張三" ISBN="1-1111-1">
          <title>C#入門幫助</title>
          <author>高手</author>
          <price>158.3</price>
        </Node>
        <Node genre="張三" ISBN="1-1111-1">
          <title>C#入門幫助</title>
          <author>高手</author>
          <price>158.3</price>
        </Node>
      </Employees>

      刪除后的內(nèi)容:
      <?xml version="1.0" encoding="gb2312"?>
      <Employees>
        <Node genre="李贊紅" ISBN="2-3631-4">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
        </Node>
        <Node genre="李贊紅" ISBN="2-3631-4">
          <title>CS從入門到精通</title>
          <author>候捷</author>
          <price>58.3</price>
        </Node>
      </Employees>

       7,按照文本文件讀取xml

      System.IO.StreamReader myFile =new
      System.IO.StreamReader(Server.MapPath("data.xml"),System.Text.Encoding.Default);
      //注意System.Text.Encoding.Default

      string myString = myFile.ReadToEnd();//myString是讀出的字符串
      myFile.Close();

      三、高級應(yīng)用 

      /*讀取xml數(shù)據(jù)   兩種xml方式*/
      <aaa>
           <bb>something</bb>
           <cc>something</cc>
      </aaa>
       
      <aaa>
          <add key="123" value="321"/>
      </aaa>

      /*第一種方法*/
      DS.ReadXml("your xmlfile name");
      Container.DataItem("bb");
      Container.DataItem("cc");
      DS.ReadXmlSchema("your xmlfile name");
       
      /*第二種方法*/
      <aaa>
          <add key="123" value="321"/>
      </aaa>
      如果我要找到123然后取到321應(yīng)該怎么寫呢?
       
      using System.XML;
      XmlDataDocument xmlDoc = new System.Xml.XmlDataDocument();
      xmlDoc.Load(@"c:\Config.xml");
      XmlElement elem = xmlDoc.GetElementById("add");
      string str = elem.Attributes["value"].Value
       
       
      /*第三種方法:  SelectSingleNode  讀取兩種格式的xml *---/
      --------------------------------------------------------------------
      <?xml version="1.0" encoding="utf-8" ?>
      <configuration>
          <appSettings>
             <ConnectionString>Data Source=yf; user id=ctm_dbo;password=123</ConnectionString>            
        </appSettings>
      </configuration>
      --------------------------------------------------------------------------
      XmlDocument doc = new XmlDocument();
      doc.Load(strXmlName);
       
          XmlNode node=doc.SelectSingleNode("/configuration/appSettings/ConnectionString");
          if(node!=null)
          {
           string k1=node.Value;    //null
           string k2=node.InnerText;//Data Source=yf; user id=ctm_dbo;password=123
           string k3=node.InnerXml;//Data Source=yf; user id=ctm_dbo;password=123
           node=null;
          }
       
      ********************************************************************
      <?xml version="1.0" encoding="utf-8" ?>
      <configuration>
          <appSettings>
             <add key="ConnectionString" value="Data Source=yf; user id=ctm_dbo;password=123" />            
        </appSettings>
      </configuration>
      **--------------------------------------------------------------------**
           XmlNode node=doc.SelectSingleNode("/configuration/appSettings/add");
          if(node!=null)
          {
           string k=node.Attributes["key"].Value;
           string v=node.Attributes["value"].Value;
           node=null;
          }
      *--------------------------------------------------------------------*
          XmlNode node=doc.SelectSingleNode("/configuration/appSettings/add");
          if(node!=null)
          {
           XmlNodeReader nr=new XmlNodeReader(node);
           nr.MoveToContent();
          //檢查當(dāng)前節(jié)點是否是內(nèi)容節(jié)點。如果此節(jié)點不是內(nèi)容節(jié)點,則讀取器向前跳至下一個內(nèi)容節(jié)點或文件結(jié)尾。
           nr.MoveToAttribute("value");
           string s=nr.Value;
           node=null;
          }

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多