- <ChargeInfo>
- <Parameter>
  <Para KEY="PAR_CO_OPTML_GOAL" USING="0" MAXVAL="0" MINVAL="0">1</Para> 
  <Para KEY="PAR_CO_AIM_SI" USING="0" MAXVAL="0" MINVAL="0">0.45</Para> 
  <Para KEY="PAR_CO_CHRG_CR" USING="-1" MAXVAL="0" MINVAL="0">120</Para> 
  <Para KEY="PAR_CO_RATE_OC" USING="-1" MAXVAL="0" MINVAL="0">6</Para> 
  <Para KEY="PAR_CO_CHRG_CR" USING="0" MAXVAL="0" MINVAL="0">6</Para> 
  <Para KEY="PAR_CO_PCIR" USING="0" MAXVAL="0" MINVAL="0">180</Para> 
  <Para KEY="PAR_CO_CHRG_SPD" USING="-1" MAXVAL="0" MINVAL="0">5.1</Para> 
  <Para KEY="PAR_CO_HOUR_COAL" USING="0" MAXVAL="0" MINVAL="0">80</Para> 
  <Para KEY="PAR_CO_CLOSED_LOOP" USING="0" MAXVAL="0" MINVAL="0">0</Para> 
  <Para KEY="PAR_CO_TAP_R_RANGE" USING="0" MAXVAL="1.32" MINVAL="1.30">1.30</Para> 
  <Para KEY="PAR_CO_TAP_AL2O3_RANGE" USING="0" MAXVAL="15.6" MINVAL="10.0">10.0</Para> 
  <Para KEY="PAR_CO_TAP_MGO_RANGE" USING="0" MAXVAL="15.6" MINVAL="10.0">5.0</Para> 
  <Para KEY="PAR_CO_RAW_SET_PATTERN" USING="0" MAXVAL="0" MINVAL="0">1</Para> 
  </Parameter>
</ChargeInfo>
上面是我平台生成的一段xml文件。我现在想解析这段xml,取出其中的数据,把数据赋给界面的控件。
初步思路就想把xml导入到dataset中去,用readxml等方法,但是没成功。大家给点意见吧。。(附上代码更好)

解决方案 »

  1.   

    以下代码已经经过测试:using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Xml.Serialization;
    using System.IO;namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            string xmlString = @"<ChargeInfo>
     <Parameter>
      <Para KEY=""PAR_CO_OPTML_GOAL"" USING=""0"" MAXVAL=""0"" MINVAL=""0"">1</Para>  
      <Para KEY=""PAR_CO_AIM_SI"" USING=""0"" MAXVAL=""0"" MINVAL=""0"">0.45</Para>  
      <Para KEY=""PAR_CO_CHRG_CR"" USING=""-1"" MAXVAL=""0"" MINVAL=""0"">120</Para>  
      <Para KEY=""PAR_CO_RATE_OC"" USING=""-1"" MAXVAL=""0"" MINVAL=""0"">6</Para>  
      <Para KEY=""PAR_CO_CHRG_CR"" USING=""0"" MAXVAL=""0"" MINVAL=""0"">6</Para>  
      <Para KEY=""PAR_CO_PCIR"" USING=""0"" MAXVAL=""0"" MINVAL=""0"">180</Para>  
      <Para KEY=""PAR_CO_CHRG_SPD"" USING=""-1"" MAXVAL=""0"" MINVAL=""0"">5.1</Para>  
      <Para KEY=""PAR_CO_HOUR_COAL"" USING=""0"" MAXVAL=""0"" MINVAL=""0"">80</Para>  
      <Para KEY=""PAR_CO_CLOSED_LOOP"" USING=""0"" MAXVAL=""0"" MINVAL=""0"">0</Para>  
      <Para KEY=""PAR_CO_TAP_R_RANGE"" USING=""0"" MAXVAL=""1.32"" MINVAL=""1.30"">1.30</Para>  
      <Para KEY=""PAR_CO_TAP_AL2O3_RANGE"" USING=""0"" MAXVAL=""15.6"" MINVAL=""10.0"">10.0</Para>  
      <Para KEY=""PAR_CO_TAP_MGO_RANGE"" USING=""0"" MAXVAL=""15.6"" MINVAL=""10.0"">5.0</Para>  
      <Para KEY=""PAR_CO_RAW_SET_PATTERN"" USING=""0"" MAXVAL=""0"" MINVAL=""0"">1</Para>  
      </Parameter>
    </ChargeInfo>";        public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                using(MemoryStream stream = new MemoryStream(System.Text.Encoding.ASCII.GetBytes(xmlString)))
                {
                    XmlSerializer serilizer = new XmlSerializer(typeof(ChargeInfo));
                    ChargeInfo info = serilizer.Deserialize(stream) as ChargeInfo;
                }        }
        }    
        public class ChargeInfo
        {
            public List<Para> Parameter { get; set; }
        }
        public class Para
        {
            [XmlAttribute]
            public string KEY { get; set; }        [XmlAttribute]
            public int USING { get; set; }        [XmlAttribute]
            public double MAXVAL { get; set; }        [XmlAttribute]
            public double MINVAL { get; set; }
            
            [XmlText]
            public string text { get; set; }
        }
    }
      

  2.   

    我是新手,你这个思路好新奇,我现在已经把xml文件装载到xdocument,现就就准备将这个doucment中的信息一点点提取出来
      

  3.   

    1楼用的是XML序列化的方法
    其实你就可以用XmlDocument进行解析,然后用xpath根据Key找到具体的Para
    xpath你要不熟悉了,网上很多讲解的