<sea..TMP_DEC_E_CONTAINER>
  <T_D_E_C_ID>1</T_D_E_C_ID> 
  <T_E_H_ID>6</T_E_H_ID> 
  <BD_SUB_C_ID>1</BD_SUB_C_ID> 
  <SEQ_NO>2</SEQ_NO> 
  <CONTAINER_ID>1</CONTAINER_ID> 
  <CONTAINER_MD>1</CONTAINER_MD> 
  <CONTAINER_WT>1.00000</CONTAINER_WT> 
  <NOTE_S>1</NOTE_S> 
  </sea..TMP_DEC_E_CONTAINER>
 <sea..TMP_DEC_E_CONTAINER>
  <T_D_E_C_ID>1</T_D_E_C_ID> 
  <T_E_H_ID>6</T_E_H_ID> 
  <BD_SUB_C_ID>1</BD_SUB_C_ID> 
  <SEQ_NO>2</SEQ_NO> 
  <CONTAINER_ID>1</CONTAINER_ID> 
  <CONTAINER_MD>1</CONTAINER_MD> 
  <CONTAINER_WT>1.00000</CONTAINER_WT> 
  <NOTE_S>1</NOTE_S> 
  </sea..TMP_DEC_E_CONTAINER>
就像上面的例子一样,我应该如何分别读出<sea..TMP_DEC_E_CONTAINER></sea..TMP_DEC_E_CONTAINER>
中的内容,请大有指教

解决方案 »

  1.   

    using System.Xml;
    using System.Windows.Forms;private string STRXML = "xmlLanguage.xml";
    //xml 名称   在  debug下
            private XmlDocument xmlDoc;
            private XmlNodeReader xmlNodeRead;public void ReadXml(Object control, string langue)
            {
                xmlDoc = new XmlDocument();
                xmlDoc.Load(STRXML);
                xmlNodeRead = new XmlNodeReader(xmlDoc);
                XmlNodeList xmlNodelist = xmlDoc.SelectSingleNode("/LangueEdition").ChildNodes;
                foreach (XmlNode xn in xmlNodelist)//遍历所有子节点
                {
                    XmlElement xmlEle = (XmlElement)xn;
                    XmlNodeList xmlListTmp = xmlEle.ChildNodes;
                    string strTmp = xmlListTmp.Item(0).InnerText;
                    if (strTmp == langue)
                    {
                        XmlNodeList xmlList = xmlListTmp;
                        foreach (XmlNode node in xmlList)
                        {
                            if (node.Name == ((Control)control).Name)
                            {
                                ((Control)control).Text = node.InnerText;
                            }
                        }
                        break;
                    }
                }
            }
    我用的,你改改吧~
      

  2.   

    首先,从上面看来,你这个XML文件中有两个节点,这在XML文件读取中会出现错误,所以你需要增加一个根节点。
    读取XML文件节点信息的方法如下:
    string strDocRoad = Application.StartupPath.ToString() ;
    strDocRoad += "\\XMLFile1.xml" ;XmlDocument myXmlDoc = new XmlDocument() ;
    myXmlDoc.Load( strDocRoad ) ;XmlNodeList nodeList = myXmlDoc.DocumentElement.ChildNodes ;
    foreach( XmlElement element in nodeList ){
    if( element.Name == "sea..TMP_DEC_E_CONTAINER" ){
    XmlNodeList list2 = element.ChildNodes ;
    if( list2.Count > 0 ){
    foreach( XmlElement el in list2 ){
    this.label1.Text += "\r\n" + el.Name + ":" + el.InnerXml ;}}}}
      

  3.   

    告诉你一个最简单的办法:(由于你这个xml文件非常有规则,其实就是数据库表的两行记录)
    用DataTable:string filename="你的文件位置";
    DataTable tab=new DataTable();
    tab.ReadXml(filename);for(int i=0;i<tab.Rows.Count;i++)
    {
        for(int j=0;j<tab.Columns.Count;j++)
        {
            tab.Rows[i][j];//这里就是你要的值
        } 
    }
      

  4.   

    Mark 楼上已经有解了====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  5.   

    #region Public Static 读取XML配置文件
    /// <summary>
    /// 读取XML配置文件
    /// </summary>
    /// <param name="XMLPath">XML配置文件的路径</param>
    /// <returns>返回的数据集</returns>
    public static DataSet ReadXMLSetting(string XMLPath)
    {
    if(File.Exists(XMLPath) == false)
    {
    return null;
    }
    else
    {
    DataSet dsXML = new DataSet(); try
    {
    dsXML.ReadXml(XMLPath);
    return dsXML;
    }
    catch
    {
    return null;
    }
    } }
    #endregion