<MenuName name="财务部">
<Menu name="财务室1" >
<Childnode name="张三"></Childnode>
<Childnode name="李四"></Childnode>
</Menu>
         <Menu name="财务室2" >
<Childnode name="王五"></Childnode>
<Childnode name="小白"></Childnode>
</Menu>
</MenuName>
<MenuName name="软件开发部">
<Menu name="开发部1" >
<Childnode name="111"></Childnode>
<Childnode name="222"></Childnode>
</Menu>
         <Menu name="开发部2" >
<Childnode name="333"></Childnode>
<Childnode name="444"></Childnode>
</Menu>
</MenuName>如何读出指定节点的属性及内容啊?比如说读取软件开发部中开发部1中的name为111的值

解决方案 »

  1.   

    LZ 这种问题 Google baidu  速度更快 更容易学~ 别在这里浪费时间了
      

  2.   

      public class ReadXml
        {
            public static void Main()
            {
                XmlReaderSettings setting = new XmlReaderSettings();
                //Insert Template.
                setting.Schemas.Add(null,@"..\..\po.xsd");
                //Validate.
                setting.ValidationType = ValidationType.Schema;
                //Does not handle errors, but displays an error message.
                setting.ValidationEventHandler += new ValidationEventHandler(EvenHandler);
                
                XmlReader reader = XmlReader.Create(@"..\..\Vol.xml",setting);
                while (reader.Read())
                {
                    if (reader.NodeType == XmlNodeType.Text)
                    {
                        Console.WriteLine(reader.Value);
                    }
                }
                Console.ReadLine();
            }        public static void EvenHandler(object sender, ValidationEventArgs e)
            {
                //Error message
                Console.WriteLine("The method or operation is not implemented.");
            }
        }
      

  3.   

      
              XmlDocument doc = new XmlDocument();
                doc1.Load("aa.xml");
                XmlNode node = doc.SelectSingleNode(@"//Menu[@name='开发部1']/Childnode[@name='111']");
      

  4.   


      public static void Contruct1(DataTable dt, string c0)
            {
                //
                System.Type myDataType = System.Type.GetType("System.String");            DataColumn dc = new DataColumn(c0, myDataType);
                dt.Columns.Add(dc);
            }        public static DataSet GetXml(string n_innerText, string n_XMLReceiveFile, int n_id, string n_name,string m_ParentAttrName, string m_AttrName, string m_AtrrValue)
            {
                XmlDocument n_xmldoc = new XmlDocument();            n_xmldoc.LoadXml(n_innerText);            DataSet n_ds = new DataSet();            DataTable n_dt = new DataTable();            PublicBean.Contruct1(n_dt, "Name");            XmlNode m_xmlnode = n_xmldoc.SelectSingleNode(m_ParentAttrName + "/Menu [@" + m_AttrName + "='" + m_AtrrValue + "']");            foreach (XmlNode m_Node in m_xmlnode.ChildNodes)
                {
                    if (m_Node.Name.Equals("Childnode "))
                    {                    DataRow n_dr = n_dt.NewRow();                    n_dr[0] = m_Node.Attributes[0].InnerText;
                        n_dt.Rows.Add(n_dr);
                    }
                }
                string n_fileName = System.DateTime.Now.ToString("yyyy_MM_dd");            if (!System.IO.Directory.Exists(n_fileName))
                {
                    System.IO.Directory.CreateDirectory(n_XMLReceiveFile + "//" + n_fileName);
                }            n_xmldoc.Save(n_XMLReceiveFile + "//" + n_fileName + "//" + n_name + n_id + "_" + System.DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + ".xml");
                n_ds.Tables.Add(n_dt);
                return n_ds;
            }