XML



XML基础、Linq To Xml

一:创建XML

<userid="001">

  <name>"aaa"</name>

   <password>"***"</password>

    <tel>

      <!--电话号码-->

      <home>62344333</home>

      <mobile>1633889999</mobile>

      <office>010-98883393</office>

    </tel>

</user>

 1.XMLTextWriter

   

XMLTextWriterdoc = new XMLTextWriter("user.xml",Encoding.UTF8)

Doc.Formatting = Formatting.Indented;//缩进

Doc.WriteStartDocment()

Doc.WriteStartElement("user")

   Doc.WriteAttributeString("id","001")

   Doc.WriteElementString("Password","***")

    Doc.WriteStartElement("Tel")

          Doc.WriteElementString("home","62344333")

          Doc.WriteElementString("mobile","1633889999")

          Doc.WriteElementString("office","010 -98883393")

   Doc.WriteEndElement()

Doc.WriteEndElement()

Doc.close()

 

2.XMLDocument

XMLDocumentdoc=new XMLDocument();

XMLDeclarationxd = doc.CreateXMLDeclaration("1.0","UTF-8",null);

XMLElement xeuser= doc.CreateElement("user");

XmlAttribute  xaId = doc.createAttribute("id");

xaId.Value="001";

XMLElementxename =doc.CreateElement("name")

xeName.InnerText="aaa";

XMLElement xepassword =doc.CreateElement("password")

xePassword.innerText="***";

XMLElement xetel=doc.CreateElement("Tel")

XMLComment xc = doc.CreateComment("电话号码")

XMLElement  xehome =doc.CreateElement("home")

xeHome.innerText="62344333"

XMLElement  xemobile=doc.CreateElement("mobile")

xemobile.innerText="1633889999"

XMLElement  xeOffice=doc.CreateElement("office")

xeOffice.InnerText="010-98883393" 

Doc.AppendChild(xd)

Doc.AppendChild(xeUser)

xeUser.Attributes.Append(xaid)

xeUser.AppendChild(xename)

xeUser.AppendChild(xepassword)

xeUser.AppendChild(xetel)

xetel.AppendChild(xehome)

xetel.AppendChild(xemobile)

xetel.AppendChild(xeoffice)

Doc.Save("user.xml")

 

3Xdocument

Usingsystem.xml.linq

XElement  xe=new XElement("user",

                                                                                 newXattribute("id","001"),

                                                              new XElement("name","aaa"),

                                                              new XElement("Password","***"),

                                                              new  XElement("Tel",

                                                                                   new Xcomment("电话号码"),

                                                               new XElement("home","62344333"),

                                                                new XElement("mobile","1633889999"),

                                                               new XElment("office","010 -98883393")))

Xdocumentxd= new Xdocument(xe);

Xd.Save("user.xml");

 

 

二:Linq To XML

XMLDocument  doc = new XMLDocument();

Doc.Load("user.xml");

String xpath ="//user[@id='001']";//任意一个user

XMLNode  node = doc.SelectSingleNode(xpath)

Stringname =node.ChildNodes[0].InnerText;

Stringpwd=node.ChildNodes[1].InnerText;

 

 

 

XMLDocument  doc = new XMLDocument();

Doc.Load("user.xml");

Stringxpath ="/user/tel";

XMLNodeList  nodes = doc.SelectNodes(xpath)

foreach(XMLNodenode in  nodes)

{

   Console.WriteLine(node.InnerText);

}

 

//修改 XMLDocument

XMLDocument  doc = new XMLDocument();

Doc.Load("user.xml");

Stringxpath ="/user[@id='001']/tel/mobile";

XMLNode  node = doc.SelectSingleNode(xpath)

node.InnerText="6666666"

doc.Save(user.xml);

 

//增加 XMLDocument

XMLDocument  doc = new XMLDocument();

Doc.Load("user.xml");

Stringxpath ="/user/tel";

XMLNodeList  nodes = doc.SelectNodes(xpath)

foreach(XMLNodenode in  nodes)

{

   XMLComment xc=doc.CreateComment("联系电话")

   node.InsertBefore(xc,node.FirstChild)

}

doc.Save(user.xml);

 

//删除 XMLDocument

XMLDocument  doc = new XMLDocument();

Doc.Load("user.xml");

Stringxpath ="/user/tel";

XMLNode  node = doc.SelectSingleNode(xpath);

node.ParentNode.RemoveChild(node);

doc.Save(user.xml);

 

 

//Linq ToXML

Xdocmentxd =new Xdocment();

xd.Load("user.xml");

varquery=xd.descendants("user").where(x=>x.Attribute("id").Value="001").selectp.descendants("mobile");

var  query = from x  in  xd.descendants("user")

                      wherex.Attribute("id").value ="001"

                      selectx.Descendants("mobile")

foreach(varv in query)

{

   string old =v.value;

   string newMob =old.PadRight(6,'0');

   v.value = newMob;  //修改

}

xd.save("user.xml");

 

varquery=xd.descendants("password").where(x=>x.Value.length>3);

var query=(from  x inxd.descendants("password")

                    where x.value.length>3

                   select x).FirstorDefault;

query.remove();      //删除

xd.save("user.xml");

 

Xcomment   xc =newXcomment("手机号码");

varquery=xd.descendants("tel").where(x=>x.parent.Attribute("id").value="001").select x.descendants("mobile");

var query= from x in xd.descendants("tel")

                      wherex.parent.Attribute("id").value ="001"

                      selectx.element("mobile")

foreach(varv in query)

{

   v.AddAfterSelf(xc);//添加

}

xd.save("user.xml");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值