XML学习点滴

1.xml在NET的程序里如果使用XmlDocument的方式构建,那么就是一棵类树。在这棵树里,所有的Xml文件的节点都被表示成类。但这些类有根据不同的XML的节点类型来表示不同的类。比如:XMLElement,XmlAttribute等等,而他们共同的抽象类是XMLNODE。他们是如下关系XmlElement : XmlLinkedNode : XmlNode。
 
2.读取XML文件中某节点的值,并修改它,XML如下:
<?xml version="1.0" encoding="utf-8"?>
<users>
  <newTab>
    <newName>BeiJing</newName>
    <newCode>ShangHai</newCode>
    <newUp>TianJin</newUp>
  </newTab>
</users>
 
代码如下
XmlDocument doc = new XmlDocument();
 doc.Load("your.xml");
      XmlNode node;
      XmlElement root = doc.DocumentElement;
      node = root.SelectSingleNode("users/newTab/newName");
     node.Value = "newvalue";
doc.save()
 
或者如下
string filePath  = HttpContext.Current.Server.MapPath("your.xml");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(filePath);
//取值
string xp = xmlDoc.SelectSingleNode("newTab").ChildNodes[0].InnerTex;
//给值
xmlDoc.SelectSingleNode("newTab").ChildNodes[0].InnerTex = "asdasd";
xmlDoc.Save(filePath);
 
3.关于xml中的AppendChild
System.Xml.XmlDocument UserInfo = new XmlDocument();
UserInfo.LoadXml("<User></User>");
XmlNode node = UserInfo.LastChild;
XmlElement elem = UserInfo.CreateElement("pass");
elem.InnerText = "Pa";
XmlNode node1 = UserInfo.CreateNode(XmlNodeType.Element, "111", "");
XmlNode node2 = UserInfo.CreateNode(XmlNodeType.Element, "222", "");
XmlNode node3 = UserInfo.CreateNode(XmlNodeType.Element, "333", "");        
node.AppendChild(node1);           
node.AppendChild(node2);                  
node.AppendChild(node3);
foreach (XmlNode Node in node)
  Node.AppendChild(elem);
UserInfo.Save(Server.MapPath("1.xml"));
得到如下:
<?xml version="1.0"?>
<User>
  <111>
      <pass>Pa</pass>
  </111>
  <222>
      <pass>Pa</pass>
  </222>
  <333>
      <pass>Pa</pass>
  </333>
</User>
 
4.修改结点名字
<Root>
    <a>
       <c/>
    </a>
</Root>
改成
<Root>
    <b>
       <c/>
    <b>
</Root>
就是把a换成b,但下面子结点内容不变。代码如下:
 
先用selectNode或别的方式找到a节点 node
XmlNode nodeTemp = doc.CreateNode( node.NodeType , "b" , "");
nodeTemp.InnerXml = node.InnerXml;
element.ReplaceChild( nodeTemp , node );
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值