<Customers>
  <User name="aaa" age="21">
    <Address>
       Shanghai
    </Address>
    <Technology>
       C#
    </Technology>
  </User>
  <User name="bbb" age="22">
    <Address>
       Zhejiang
    </Address>
    <Technology>
       javascript
    </Technology>
  </User>
  <User name="ccc" age="23">
    <Address>
       Zhejiang
    </Address>
    <Technology>
       Delphi
    </Technology>
  </User>
</Customers>--请问,我如果要获取 name="bbb" 的节点下面的 Address节点的值zhejiang,C#应该怎么写呢?

解决方案 »

  1.   

    这是参考代码,差不多可以结贴给分了哈!        public SqlConnection GetCon()
            {
                SqlConnection G_Con = null; ;
                try
                {
                    string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "参数配置.xml");
                    if (File.Exists(configFile))
                    {
                        XmlOperator xmlOperator = new XmlOperator(configFile);
                        int size = xmlOperator.GetXmlReader().Length;
                        string[] getDataBaseInfo = new string[size];                    for (int i = 0; i < size; i++)
                        {
                            getDataBaseInfo[i] = xmlOperator.GetXmlReader()[i];
                        }
                        string G_Str_ConnectionString = "Server=" + getDataBaseInfo[0];
                        G_Str_ConnectionString += ";user id=" + getDataBaseInfo[1];
                        G_Str_ConnectionString += ";password=" + getDataBaseInfo[2];
                        G_Str_ConnectionString += ";initial catalog=" + getDataBaseInfo[3] + ";Connect Timeout=20";
                        G_Con = new SqlConnection(G_Str_ConnectionString);
                    }
                    else
                    {
                        MessageBox.Show("不存在配置文件,请添加!");
                        Application.Exit();
                    }
                }
                catch (InvalidOperationException ex)
                {
                    MessageBox.Show("数据库打开失败,错误原因:" + ex.Message.ToString());
                    
                }
                return G_Con;
            }
      

  2.   


    这是我的XML自己对照一下吧!
    <?xml version="1.0" encoding="utf-8"?>
    <system>
      <DBServer>localhost</DBServer>
      <UserID>sa</UserID>
      <Pwd>
      </Pwd>
      <DBName>LightCtrl</DBName>
      <ComSet>
        <SeriPort>COM1</SeriPort>
        <BaudRate>19200</BaudRate>
        <DataBits>8</DataBits>
        <Parity>无</Parity>
        <StopBits>1</StopBits>
      </ComSet>
    </system>
      

  3.   


    void Main()
    {
       string xml = @"<Customers>
      <User name=""aaa"" age=""21"">
    <Address>
       Shanghai
    </Address>
    <Technology>
       C#
    </Technology>
      </User>
      <User name=""bbb"" age=""22"">
    <Address>
       Zhejiang
    </Address>
    <Technology>
       javascript
    </Technology>
      </User>
      <User name=""ccc"" age=""23"">
    <Address>
       Zhejiang
    </Address>
    <Technology>
       Delphi
    </Technology>
      </User>
    </Customers>";
    XElement xmlPage = XElement.Parse(xml);
    var q = from x in xmlPage.Descendants("User")
    where x.Attribute("name").Value == "bbb"
    select x.Element("Address").Value;
    q.ToList().ForEach(l=>Console.WriteLine(l));
    }/*
     Zhejiang
    */
      

  4.   

                string xml = @"<Customers>
      <User name=""aaa"" age=""21"">
      <Address>
      Shanghai
      </Address>
      <Technology>
      C#
      </Technology>
      </User>
      <User name=""bbb"" age=""22"">
      <Address>
      Zhejiang
      </Address>
      <Technology>
      javascript
      </Technology>
      </User>
      <User name=""ccc"" age=""23"">
      <Address>
      Zhejiang
      </Address>
      <Technology>
      Delphi
      </Technology>
      </User>
    </Customers>";
                XDocument Doc = XDocument.Parse(xml);
                var query = Doc.Descendants("User").Where(x => x.Attribute("name").Value == "bbb").Select(x => x.Element("Address").Value);
                foreach (var v in query)
                {
                    Console.WriteLine(v.ToString());
      

  5.   

     string resHtml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?> <Customers><User name=\"bbb\" age=\"22\"><Address>Zhejiang</Address><Technology> javascript</Technology></User></Customers>";
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(resHtml);                XmlNodeList xnl = xmlDoc.SelectNodes("/Customers");
                    XmlNodeList linkNOdes = xnl[0].SelectNodes("User");
                    foreach (XmlNode linkNode in linkNOdes)
                    {
                        foreach (XmlNode xn2 in linkNode.ChildNodes)
                        {
                            if (xn2.Name == "Address")
                            {
                                string name = xn2.InnerText;
                            }
                        }                }
      

  6.   

     XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load("XXX.xml"); // 文件路径
     XmlNodeList nodeList=xmlDoc.SelectSingleNode("Customers").ChildNodes;//获取bookstore节点的所有子节点 foreach(XmlNode xn in nodeList)//遍历所有子节点 { XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型 if(xe.GetAttribute("name")== "bbb")
     { 
     MessageBox.Show(xe.SelectSingleNode("Address").InnerText);}
    }也可以
    xmlDoc.SelectSingleNode("Customers/User[name=bbb]").ChildNodes[0].InnerText;
      

  7.   

    最简单的方法 string Setadr = System.IO.Directory.GetCurrentDirectory();
            XmlDocument _Documnet = new XmlDocument();//获取程序路径
     _Documnet.Load(Setadr + "/set.xml");//读取此XML
    XmlNodeList _NodeList = _Documnet.SelectNodes("Customers/bbb/Address");
                if (_NodeList.Count != 0)
                    return _NodeList[0].InnerText;//返回此节点值
      

  8.   

      string name = "";
    //打开xml文件 
        FileStream myFile = new FileStream(AutoUpdaterFileName, FileMode.Open);
        //xml文件阅读器 
        XmlTextReader xml = new XmlTextReader(myFile);
        while (xml.Read())
        {
            if (xml.Name == "UpdateUser")
            {
                //获取升级文档的最后一次更新日期 
                name = xml.GetAttribute("name");
                break;
            }
        }