string sqlStr = "";
        sqlStr += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
        sqlStr += "<paramter>";
        sqlStr += "<daterange>";
        sqlStr += "  <fromdate>";
        sqlStr += fromtime;
        sqlStr += "  </fromdate>";
        sqlStr += "  <todate>";
        sqlStr += totime;
        sqlStr += "  </todate>";
        sqlStr += "</daterange>";
        sqlStr += "  <machine>";
        sqlStr += "  </machine>";
        sqlStr += "  <problem>";
        sqlStr += "  </problem>";
        sqlStr += "  <enableattribute>";
        sqlStr += "    <enable>"+attribute +"</enable>";
        if( attribute=="1")
        {
            sqlStr += "     <attribute>";
            sqlStr += "       <attributeseries>"+attributeSeries+"</attributeseries>";
            sqlStr += "       <attributemodel>"+attributeModel+"</attributemodel>";
            sqlStr += "      </attribute>";
        }
        sqlStr += "  </enableattribute>";
        sqlStr += "  <excludeRC>";
        sqlStr += "    <exclude>";
        sqlStr += exclude;
        sqlStr += "   </exclude>";
        sqlStr += "  </excludeRC>";
        sqlStr += "</paramter>";
        XmlDocument myDoc = new XmlDocument(); //定义一个XmlDocument对象。
        myDoc.LoadXml(sqlStr);
        XmlNodeList xnl = myDoc.SelectSingleNode("paramter").ChildNodes;
       
        foreach (ListItem li in ListBox1.Items)
        {
            XmlNode xn =xnl.Item(1);
           // XmlElement xe = (XmlElement)xn;            XmlElement xesub1 = myDoc.CreateElement("machineInfo");
         
            xesub1.InnerText =machine;//设置文本节点
          
            xn.AppendChild(xesub1);//添加到<book>节点中
          
                   }
   
        foreach (ListItem list in ListBox2.Items)
        {
            XmlNode xn = xnl.Item(2);
           // XmlElement xe = (XmlElement)xn;            XmlElement xesub1 = myDoc.CreateElement("problemInfo");
           
            
                xesub1.InnerText = promble;//设置文本节点
            
            xn.AppendChild(xesub1);//添加到<book>节点中        }       string s= sqlStr;为什么foreach后可以添加子节点,可是返回后sqlStr开始之前的,没用
请高手讲解并解决问题

解决方案 »

  1.   

    sqlStr并没有被赋给XmlDocument增加节点后的值操作完XmlDocument后加一句
    sqlStr = myDoc.InnerText.
      

  2.   

    sqlStr = myDoc.InnerText;或者myDoc.InnerXml;
      

  3.   

    第一个foreach添加后,xml文档结构变化了,在第二次加之前应该读取第一次添加过后的xml内容
      

  4.   

    Line 546:        XmlDocument myDoc = new XmlDocument(); //定义一个XmlDocument对象。
    Line 547:        sqlStr = myDoc.InnerText.
    Line 548:        myDoc.LoadXml(sqlStr);
    Line 549:        XmlNodeList xnl = myDoc.SelectSingleNode("paramter").ChildNodes;
    Line 550:   'string' does not contain a definition for 'myDoc'    
      

  5.   


    Identifier expected, 'foreach' is a keyword
      

  6.   


    你对myDoc的增加操作并没有影响sqlStr这个字符串。当你需要取得增加后的xml内容时,使用myDoc.InnerText。别问"加载什么地方"这种生硬的问题。