关闭

XML学习点滴

614人阅读 评论(0) 收藏 举报
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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:29607次
    • 积分:353
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:22篇
    • 译文:0篇
    • 评论:10条
    文章分类
    最新评论