日期:2014-05-18 浏览次数:20809 次
XmlDocument xmlOld = new XmlDocument(); xmlOld.Load(@"C:\XMLFile1.xml"); XmlDocument xmlNew = new XmlDocument(); xmlNew.LoadXml(xmlOld["result"]["body"]["tasks"].InnerXml); MessageBox.Show(xmlNew.InnerXml);
------解决方案--------------------
xmldocument和xpath查询就可以了
------解决方案--------------------
一个很笨的方法:
1.加载XmlDocument,并导航到Tasks节点
2.定位到XmlDocument对象的根节点,把1中得到节点对象添加进来。
3.删除Doc根节点中除2新添加的节点以外的所有子节点。
4.保存XmlDocument对象到一个文件中。
------解决方案--------------------
1.首先,先把tasks节点查出来
XmlNode node=XmlDoc.SelectSingleNode("//tasks");
2.把节点及其子节点保存到XMLWRITER中,在生成新的XML时,把此WRITER放入合适的位置即可。
XmlTextWriter writer = new XmlTextWriter(Console.Out);
writer.Formatting = Formatting.Indented;
node.WriteContentTo(writer);
------解决方案--------------------
#region XMLDocument方法 /// <summary> /// 给定一个节点的xPath表达式并返回一个节点 /// </summary> /// <param name="node"></param> /// <returns></returns> public XmlNode FindNode(string xPath) { XmlNode xmlNode = this.SelectSingleNode(xPath); return xmlNode; } /// <summary> /// 给定一个节点的xPath表达式返回其值 /// </summary> /// <param name="xPath"></param> /// <returns></returns> public string GetNodeValue(string xPath) { XmlNode xmlNode = this.SelectSingleNode(xPath); return xmlNode.InnerText; } public void SetNodeValue(string xPath, string NewValue) { XmlNode xmlNode = this.SelectSingleNode(xPath); xmlNode.InnerT