.net之XML

时间:2024-11-23 12:06:26

前言

想想毕业到现在已经工作了3个月,总结的知识点还是太少。这周因为项目完成的差不多了,有空补充一下知识,上周学了XML吗,一直都没有总结。今天便总结一下,一方面梳理一下知识点,一方面巩固下知识。

XML的特性

  • 标签要闭合
  • 属性要用" "包围。
  • Xml的大小写敏感
  • 元素必须关闭
  • 标签可以嵌套

怎么获取你已经建立的xml文件

1,先建立一个xml文件取名XMLFile1.xml

2,在同一目录下建立一个webform页面,获取同类型的代码如下

 XmlDocument xd = new XmlDocument();
xd.Load(Server.MapPath("XMLFile1.xml"));

第一行代码声明一个XmlDocument类(想象一个装xml文件的容器),第二行代码把xml文件导入该容器。

怎么获取xml的节点

为了更加直观一点,直接上代码:

             XmlElement xe=xd.DocumentElement;
//获取xml文件中的根元素 XmlNode root = xd.SelectSingleNode("DocumentElement");
//获取xml文件中的第一个所找"DocumentElement"节点,此处因为DocumentElement为根节点,
//所以可以用来获取该xml文件中的全部节点 XmlNode xn = root.FirstChild;
//根节点下的第一个节点 xn = root.LastChild;
//根节点下的最后一个节点 XmlNodeList xnl=xd.SelectSingleNode("DocumentElement").ChildNodes;
//获取xml文件中的全部孩子节点 xnl = root.SelectNodes("descendant::basic[Name='Lily']");
//获取root节点下所有满足name节点为lily的一级子节点,语法为("descendant::{0}[{1}"],root节点的一级子节点,条件)

附上一个简单的xml

<DocumentElement>
<basic>
<ID></ID>
<Name>Lily</Name>
</basic>
<basic>
<ID></ID>
<Name>Lucy</Name>
</basic>
<basic>
<ID></ID>
<Name>Lilei</Name>
</basic>
<basic>
<ID></ID>
<Name>HanMeiMei</Name>
</basic>
<basic>
<ID></ID>
<Name>LinTao</Name>
</basic>
</DocumentElement>

节点的操作方法

下面写了几个常用的,欢迎补充

1 增加节点

 XmlElement xe = xd.CreateElement("basic");//新建节点
XmlElement xe2 = xd.CreateElement("ID");
xe2.InnerText = "";//
xe.AppendChild(xe2);//把xe2放到basic节点里
XmlElement xe3 = xd.CreateElement("Name");
xe3.InnerText = "HuangFeiHong";
xe.AppendChild(xe3);
root.InsertAfter(xe, root.SelectSingleNode("descendant::basic[Name='Lily']"));//xe为要插入的节点,第二个参数为要插入的位置
xd.Save(Server.MapPath("XMLFile1.xml"));//保存xml文件

2 删除节点

            XmlNode root = doc.DocumentElement;
XmlNode xn1 = root.SelectSingleNode("descendant::basic[ID='3']");
root.RemoveChild(xn1);

3将xml显示出来

sb为StringBuilder类型;

sb.Append("<table>");
XmlNodeList nodelist = root.SelectNodes("//basic");
foreach (XmlNode xn in nodelist)
{
sb.Append("<tr>");
XmlNodeList xnlist=xn.ChildNodes;
foreach (XmlNode XN in xn)
{
sb.Append("<td width='50px' height='20px'>");
sb.Append(XN.InnerText);
sb.Append("</td>");
}
sb.Append("</tr>");
}
sb.Append("</table>");

4 增删查改,最后一个当然是改,不过此处不再贴出代码,实际操作为修改找到节点的innerText即可。

说说感想

虽然不怎么写博客,不过倒是看了很多,学习了很多,第一次写这种总结性的博客,写的不好希望大家给出意见。今天写的这篇博客也花了有三个小时。临时写的程序,写的过程发现了很多缺漏,重新梳理了很多知识。发现写博客确实能帮助自己进步,巩固知识,能把自己乱糟糟的知识一点点理出来。以后还会继续写。共勉!