<conn>
  <connstr>
    <connno>adc10</connno>
    <connection_string>Server=DATA-cw;database=adc10;uid=22;pwd=22</connection_string>
  </connstr>
<connstr>
    <connno>adc20</connno>
    <connection_string>Server=ee-cw;database=adc20;uid=22;pwd=22</connection_string>
  </connstr><connstr>
    <connno>adc30</connno>
    <connection_string>Server=ee-cw;database=adc30;uid=zx;pwd=22</connection_string>
  </connstr>
..............
</conn>问题是:当读取到<connno>adc30</connno>中的值时,保存为Session的名字,读到<connection_string>Server=ee-cw;database=adc30;uid=zx;pwd=22</connection_string>
时,保存到刚刚的Session中;
这个怎么写?xml读取:         
              string result;
               string sessionname="";
               while (reader.Read())
               {
                   if (reader.Name == "connstr")
                   {
                       result = "";
                       for (int count = 0; count < reader.AttributeCount; count++)
                       {
                           result += "---";
                           
                       }
                       result += "->" + reader.ReadInnerXml() + "<br/>";
                       this.mEmployeesLabel.Text += result;
                    }
                }

解决方案 »

  1.   

    XmlDodument _xml = new XmlDocument();
    _xml.load(路径);
    XmlNode _node =_xml.SelecteSingleNode("//conn//connstr[connno='adc30']");
    Session["adc30 "] = _node.ChildNode.items(1).InnerText;
      

  2.   

    不是只读一个,是有很多象adc30那样的东西,都要保存到Session中,主要是怎么写这个循环?
      

  3.   

    保存为session的名字?
    当你取值时又怎么确定session的名字呢?
    (也许这些名字都是固定的,你是直接写出一个去取)建议放在hashtable中
    Hashtable ht = new Hashtable();
    set: ht[key] = value;
    get: string str = (string)ht[key];
      

  4.   

    漏了一句:
    set: Session["servers"] = ht;
    get: Hashtable ht = (Hashtable)Session["servers"];
      

  5.   

    象这样啊
      <connstr> 
        <connno>adc10 </connno> 
        <connection_string>Server=DATA-cw;database=adc10;uid=22;pwd=22 </connection_string> 
      </connstr> 
    希望读取xml以后结果成这个样子
    Session["adc10"]="Server=DATA-cw;database=adc10;uid=22;pwd=22";
    Session["adc20"]="Server=DATA-cw;database=adc20;uid=22;pwd=22"
    等很多;
      

  6.   


    XmlDocument xml = new XmlDocument();
    xml.Load(Server.MapPath("~/XMLFile.xml"));
    XmlNodeList nodeList = xml.SelectNodes("/connstr");
    foreach (XmlNode xn in nodeList)
    {
         Session[xn.ChildNodes.Item(0).InnerText] = xn.ChildNodes.Item(1).InnerText;
    }
      

  7.   


    <?xml version="1.0" encoding="utf-8" ?>
    <root>
      <connstr>
        <connno>adc30 </connno>
        <connection_string>Server=ee-cw;database=adc30;uid=zx;pwd=22</connection_string>
      </connstr>
      <connstr>
        <connno>adc40 </connno>
        <connection_string>Server=ee-cw;database=adc30;uid=zx;pwd=22</connection_string>
      </connstr>
    </root>        XmlDocument xml = new XmlDocument();
            xml.Load(Server.MapPath("~/XMLFile.xml"));
            XmlNodeList nodeList = xml.SelectNodes("root//connstr");
            foreach (XmlNode xn in nodeList)
            {
                Session[xn.ChildNodes.Item(0).InnerText] = xn.ChildNodes.Item(1).InnerText;
            }
      

  8.   

    你试下: XmlNodeList nodeList=xmlDoc.SelectSingleNode("connection_string").ChildNodes
     foreach(XmlNode xn in nodeList)
                {
                  XmlElement xe=(XmlElement)xn;
                     XmlNodeList nls=xe.ChildNodes;
                 foreach(XmlNode xn1 in nls)
                  {
                        XmlElement xe2=(XmlElement)xn1;
                        if(xe2.Name=="connection_string")
                        {
                          session["conn"]=   xe2.InnerText; //保存到SEssion,这里想怎么保存你自己写
                        }
                  }
             }