XML_(3)_用C#操作缓存中的XML即DOM
用C#来处理DOM主要的几个步骤如下:
一、先声明一XmlDocument对象并装载XML文件或片段;
XmlDocument doc=new XmlDocument(); --不要忘记了导入System.Xml哦
doc.load("test.xml");
--doc.loadXml("<book>abc</book>");
二、再声明一XmlElement变量对象并用doc.DocumentElement来赋值(得到XML文件的根元素不是根节点)
XmlElement root=doc.DocumentElement();
三、这样我们就可以进行查找节点再进行相应的操作了:
1)、查找单个节点可有两种方法,一种是:用Get系列方法,如GetFirstChild(),另一种方法是SelectSingleNode("相应的XPath字符串");
2)、也可查找节点集有两个对象XmlNodeList与XmlNamedNodeMap,共五种方法:
前者用得比较多,而后者是处理无序节点集多处理Xml片段
//方法一
//XmlNodeList el=n.ChildNodes; 得到n的所有子节点集
//方法二
//XmlNodeList el=n.SelectNodes("book");
//方法三
// XmlElement rootEle=doc.DocumentElement;
// XmlNodeList el=rootEle.GetElementsByTagName("book");
//方法四
//XmlNodeList el=doc.GetElementsByTagName("book");
//方法五
//略
3)、可用以下三种方法来循环处理节点集
方法一:
foreach(XmlElement ele in el)
{
MessageBox.Show(ele.OuterXml);
}
方法二:
for(int i=0;i<el.Count;i++)
{
MessageBox.Show(el[i].OuterXml);
}
方法三:
System.Collections.IEnumerator IE=doc.GetElementsByTagName("book").GetEnumerator();
--由上面的GetEnumerator(); 返回 Collections.IEnumerator 对象
XmlElement CurrentElement;
while(IE.MoveNext())
{
CurrentElement=(XmlElement)IE.Current;--此处要把类型为object的Current转为Xmlelement
MessageBox.Show(CurrentElement.OuterXml);
}
四、创建新节点
主要的步骤如下:
1)、用XmlDocument对象并用XML填充其
2)、确定要插入的位置并定位到此位置
3)、创建节点(其实也可为:Element、Attribute、Text、Comment、CDATA或Processing
Instruction)
4)、再在XmlDocment对象中添加节点
(注意:添加节点只有三种方法而已。AppendChild()、InsertBefore()还有InsertAfter();)
一:创建元素节点
XmlElement elem=doc.CreateElement("price");
XmlElement(对象)。InnerText();
XmlNode(对象)。CreateTextNode();
二:为元素节点设置属性
SetAttribute()此方法是有则改,无则创.
三:创建其他类型的节点
XmlDocument.CreateComment()方法进行注释节点
XmlDocument.CreateCDataSection()
XmlDocument.CreateProcessingInstruction()
五、修改和删除节点
ReplaceChild();
SetAttribute();
RemoveChild();
RemoveAttribute();
RemoveAll();
嗯,第6章就这样了,感觉还可以,就是要记住一些方法和参数。