XmlDocument加载。XmlNode有节点的各个方法及属性等。

解决方案 »

  1.   

    XmlDocument xdoc = new XmlDocument();
                xdoc.Load(xml文件位置);
                XmlNode xnode = xdoc.DocumentElement;
                XmlNode node = xnode.SelectSingleNode("newNode");
                foreach (XmlNode xmlnode in node.ChildNodes)
                {
                    MessageBox.Show(xmlnode.InnerText);
                }
      

  2.   

    遍历xml
    string id="";
    string name="";
    string age="";
    foreach(xmlnode xn in xmldoc)
    {
        if(xn.name = "newnode")
        {
            id = xn.childnode["id"].innertext;
            name = xn.childnode["firstname"].innertext;
            ……
         }
    }
      

  3.   

    如果我要吧取出的XML里面的属性 放到DATASET里面这个该如何写进去?
      

  4.   

    你可以研究一下这段,上面的内容就是提取的xml的数据
    <table class="Table" width="100%" border="0">
    <tr>
    <td bgcolor="#5a7dd1"><font color="white"><a href="AddReply.aspx?TitleID=<%# Eval("TitleID") %>"><font color="white">[回复文章]</font></a>
    <font color="white">[本篇作者:<%# Eval("UserName") %>]</font>
    </td>
    </tr>
    <tr>
    <td>发帖人:<%# Eval("UserName") %>,所属区域:<%# Eval("BoardName")%>
    </td>
    </tr>
    <tr>
    <td>标  &nbsp;&nbsp;题:回复:<%=Name %>
    </td>
    </tr>
    <tr>
    <td>发信站:MRSOFTASPNET-XMLBBS(<%# Eval("CreateDate") %>),站内
    </td>
    </tr>
    <tr>
    <td><br />  <%# Eval("Body").ToString().Replace("\n","<br>") %><br />
    </td>
    </tr>
    <tr>
    <td><hr size="1" width="98%" /></td>
    </tr>
    </table>
      

  5.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml;
    using System.Data;
    using System.IO;namespace Tsd
    {    
        /// <summary>
        /// 操作XML文件的类
        /// </summary>
        public class XmlHelper
        {
            protected string xmlFile;
            protected XmlDocument xmlDoc = new XmlDocument();        public XmlHelper(string xmlFile)
            {
                try
                {
                    xmlDoc.Load(xmlFile);
                }
                catch (System.Exception ex)
                {
                    throw ex;
                }
                this.xmlFile = xmlFile;
            }
            
            /// <summary>
            /// 查找数据。返回一个DataView
            /// </summary>
            /// <param name="xmlPathNode">带路径的节点名称,如:PENSON/NAME</param>
            /// <returns></returns>                
            public DataView GetData(string xmlPathNode)
            {            
                DataSet ds = new DataSet();
                StringReader read = new StringReader(xmlDoc.SelectSingleNode(xmlPathNode).OuterXml);
                ds.ReadXml(read);
                return ds.Tables[0].DefaultView;
            }        /// <summary>
            /// 更新节点内容
            /// </summary>
            /// <param name="xmlPathNode">带路径的节点名称,如:PENSON/NAME</param>
            /// <param name="content">节点内容</param>
            /// <param name="isSave">是否保存,true为保存,false为不保存</param>
            public void Replace(string xmlPathNode, string content, bool isSave)
            {
                XmlNode node = xmlDoc.SelectSingleNode(xmlPathNode);
                if (!IsExist(node))
                {
                    return;
                }
                xmlDoc.SelectSingleNode(xmlPathNode).InnerText = content;
                if (isSave) Save();
               
            }
            
            /// <summary>
            /// 删除指定节点及其该节点的所有子节点
            /// </summary>
            /// <param name="nodeName">带路径的节点名称,如:PENSON/NAME</param>
            /// <param name="isSave">是否保存,true为保存,false为不保存</param>
            public void Delete(string nodeName, bool isSave)
            {            
                string mainNode = nodeName.Substring(0, nodeName.LastIndexOf("/"));
                XmlNode node = xmlDoc.SelectSingleNode(nodeName);
                if (!IsExist(node))
                {
                    return;
                }
                xmlDoc.SelectSingleNode(mainNode).RemoveChild(xmlDoc.SelectSingleNode(nodeName));
                if (isSave) Save();
            }        /// <summary>
            /// 插入一节点和此节点的一子节点。
            /// </summary>
            /// <param name="mainNode">待插入的父节点名称(带路径)</param>
            /// <param name="childNode">待插入的节点名称</param>
            /// <param name="element">待插入的子节点名称</param>
            /// <param name="content">待插入的子节点内容</param>
            /// <param name="isSave">是否保存,true为保存,false为不保存</param>
            public void InsertNode(string mainNode, string childNode, string element, string content, bool isSave)
            {            
                XmlNode rootNode = xmlDoc.SelectSingleNode(mainNode);
                if (!IsExist(rootNode))
                {
                    return;
                }
                XmlElement childElement = xmlDoc.CreateElement(childNode);
                rootNode.AppendChild(childElement);
                XmlElement xmlElement = xmlDoc.CreateElement(element);
                xmlElement.InnerText = content;
                childElement.AppendChild(xmlElement);
                if (isSave) Save();                
            }        /// <summary>
            /// 插入一个节点,带一属性。
            /// </summary>
            /// <param name="mainNode">待插入的父节点名称(带路径)</param>
            /// <param name="element">待插入的节点名称</param>
            /// <param name="attrib">待插入的节点属性名称</param>
            /// <param name="attribContent">待插入的节点属性内容</param>
            /// <param name="content">待插入的节点内容</param>
            /// <param name="isSave">是否保存,true为保存,false为不保存</param>
            public void InsertElement(string mainNode, string element, string attrib, string attribContent, string content,bool isSave)
            {            
                XmlNode node = xmlDoc.SelectSingleNode(mainNode);
                if (!IsExist(node))
                {
                    return;
                }
                XmlElement xmlElement = xmlDoc.CreateElement(element);
                xmlElement.SetAttribute(attrib, attribContent);
                xmlElement.InnerText = content;
                node.AppendChild(xmlElement);
                if (isSave) Save();
                    
            }        /// <summary>
            /// 插入一个节点,不带属性。
            /// </summary>
            /// <param name="parentNodeName">待插入的父节点名称(带路径)</param>
            /// <param name="element">待插入的节点名称</param>
            /// <param name="content">待插入的节点内容</param>
            /// <param name="isSave">是否保存,true为保存,false为不保存</param>
            public void InsertElement(string parentNodeName, string nodeName, string nodeContent, bool isSave)
            {            
                XmlNode node = xmlDoc.SelectSingleNode(parentNodeName);
                if (!IsExist(node))
                {
                    return;
                }
                XmlElement xmlElement = xmlDoc.CreateElement(nodeName);
                xmlElement.InnerText = nodeContent;
                node.AppendChild(xmlElement);
                if (isSave) Save();
            }        /// <summary>
            /// 保存文档。
            /// </summary>
            public void Save()
            {
                CheckManager checkManager = new CheckManager();
                checkManager.AddChecker(new CheckFileExists(xmlFile));
                checkManager.AddChecker(new CheckFileUsing(xmlFile));
                if (checkManager.Check())
                {
                    xmlDoc.Save(xmlFile);
                }  
            }        /// <summary>
            /// 判断节点是否存在
            /// </summary>
            /// <param name="node">节点名称</param>
            /// <returns></returns>
            public bool IsExist(XmlNode node)
            {
                if (node != null) return true;
                else return false;
            }        /// <summary>
            /// 判断节点是否存在
            /// </summary>
            /// <param name="nodeName">节点名称</param>
            /// <param name="isParent"></param>
            /// <returns></returns>
            public bool IsExist(string nodeName)
            {
                XmlNode node = xmlDoc.SelectSingleNode(nodeName);
                return IsExist(node);
            }
        }
    }
      

  6.   

      <newNode> 
        <id>5 </id> 
        <firstname>yoyo </firstname> 
        <age>18 </age> 
      </newNode> 
      <newNode> 
        <id>8</id> 
        <firstname>yo </firstname> 
        <age>18 </age> 
      </newNode> 
    也许我的XML不只一个记录 。。我怎么让它都获取出来。。获取出来就赋值一下。。直到全部结束为止!