<?xml version="1.0" encoding="gb2312" ?> 
- <xml>
- <tables>
- <table>
- <tableRow>
  <nameid>1</nameid> 
  <name>name</name> 
  <titleid>ttttttt</titleid> 
  <title>project1</title> 
  <userid>453</userid> 
  <username>admin</username> 
  </RESULTROW>
- <RESULTROW>
  <nameid>1</nameid> 
  <name>name</name> 
  <titleid>ttttttt</titleid> 
  <title>project1</title> 
  <userid>453</userid> 
  <username>admin</username>  
  </tableRow>
  </table>
  </tables>
  <ERRORINFO /> 
  <CURRENTTIME>2010-10-18 23:04:45</CURRENTTIME> 
  <ISSUCCESS>true</ISSUCCESS> 
  </xml>

以上是xml的格式,根据userid查所有的值绑定到combobox中,
  XmlDocument entityX = new XmlDocument();
                entityX.Load(entityXmlString);
                XmlNodeReader entityReader = new XmlNodeReader(entityX);
                DataSet entityDS = new DataSet();
                entityDS.ReadXml(entityReader);
                entityReader.Close();
                string caseid = ((System.Data.DataRowView)(comboBoxCases.SelectedItem)).Row.ItemArray[0].ToString();                comboBoxEntity.DataSource = null;
                if (entityDS.Tables.Count > 3)
                {
                    string caseids = "caseid='" + caseid + "'";
                    comboBoxEntity.Text = "---请选择---";
                    comboBoxEntity.DataSource = entityDS.Tables[3].Select(caseids);
                    comboBoxEntity.DisplayMember = "title";                }——————》我的代码,显示不出title这一列的值,请各位高手帮帮忙,谢了

解决方案 »

  1.   

    lz, 你的xml格式不对啊。</RESULTROW>
    <RESULTROW>不闭合啊。
      

  2.   

    XmlDocument doc= new XmlDocument(); 
    doc.Load(""); 
    foreach (XmlNode node in doc.GetElementsByTagName("title"))
    {}XmlDocument xmldoc=new XmlDocument();  
    xmldoc.LoadXml("");  
    XmlNodeList nodelist=xmldoc.SelectNodes("");  
    for(int i=0;i <nodelist.Count;i++)  
    {  
    XmlNodeList node= nodelist[i].ChildNodes;  
    for(int j=0;j <node.Count; j++)  
    {  
    comboBox1.Items.Add(node[j].InnerText);  
    }  
    }  
     
     
      

  3.   

    <tables>下可以多个<table>真正的</RESULTROW>
    <RESULTROW>是我太急忘记改了抱歉
      

  4.   

    来个Linq2Xml
      XElement data = XElement.Load(@"D:\VisualStudioProject2008\CSDNAnswer\Linq2xml\Linq2xmlXpath\Linq2xmlXpath\data.xml");            var query = (from p in data.Descendants("tableRow")
                            where (string)p.Element("userid") == "453"
                            select new
                            {
                                titleid = (string)p.Element("titleid"),
                                title = (string)p.Element("title")
                            }).ToList();            this.comboBox1.DataSource = query;
                this.comboBox1.DisplayMember = "title";
                this.comboBox1.ValueMember = "titleid";
      

  5.   

    title = (string)p.Element("title")改为title = (string)p.Element("title") + (string)p.Element("titleid")看得就更清楚了。
      

  6.   

    C# 3.0 就支持Linq了。我用的是VS2008。对了,要添加using System.Xml.Linq;的引用。
      

  7.   

    其实用 wuyq11 的方法+XPath也能写出来同时查出id和title
      

  8.   

    我的XML是整个文件不是路径,没有路径的,因为我调用的是别人的借口获取到xml文件的
      

  9.   

    那就load xml string了。一样的。XElement data = XElement.Load(new System.IO.StringReader("..."))
      

  10.   

    不用Linq, 直接用DOM和XPath。
                XmlDocument doc = new XmlDocument();
                doc.LoadXml("...");
                
                DataTable data = new DataTable();
                data.Columns.Add("title");
                data.Columns.Add("titleid");            foreach (XmlNode node in doc.GetElementsByTagName("tableRow"))
                {
                    DataRow row = data.NewRow();
                    row["title"] = node.SelectSingleNode("title").InnerText + ":" + node.SelectSingleNode("titleid").InnerText;
                    row["titleid"] = node.SelectSingleNode("titleid").InnerText;
                    data.Rows.Add(row);
                }            this.comboBox1.DataSource = data;
                this.comboBox1.DisplayMember = "title";
                this.comboBox1.ValueMember = "titleid";
      

  11.   

    foreach里面:if ( node.SelectSingleNode("userid").InnerText == "453" )
    {
       DataRow ...
    }
      

  12.   

    可以不用循环的,直接使用XmlNode node = doc.SelectSingleNode("/tables/tableRow[./userid='453']");
      

  13.   

    最好写个类 里面有个字段是title 这样就可以显示出来