<PACKET>
 <BEGINTIME>
  <VALUE value="20100813194953" /> 
  <TIME_INTERVAL value="5" unit="s" /> 
 </BEGINTIME>
  <DATA>
    <ITEM value="ECG/HR" type="NoSub" /> 
    <VALUE>
      <ORIGIN value="0" unit="bpm" /> 
      <SCALE value="1" unit="bpm" /> 
      <DIGITS>86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87   105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87           84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91</DIGITS> 
  </VALUE>
</PACKET>
文档中的如下值全部用C#语言解析出来,该怎么解析啊。以前没有接触过XML解析方面的程序,固希望有高人指点,帮忙解释,非常感激,在线等待哦,高分绝不少你的。。
value="20100813194953"
value="5" unit="s"
value="0" unit="bpm"
value="ECG/HR"
value="0" unit="bpm"86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87   105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87           84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91 86 87 86 87 84 83 87 105 85 84 84 84 || 89 87 84 85 87 87 86 93 91 91 91</DIGITS>

解决方案 »

  1.   

    我以前没有接触过解析XML的代码,因为时间紧迫,所以,希望能给我个详细的实现步骤,最好是代码加上说明。。非常感激
      

  2.   

    System.Xml.XmlDocument dom = new System.Xml.XmlDocument(); 
                dom.LoadXml(xml); 
                foreach (System.Xml.XmlNode node in dom.ChildNodes) 
                {  
                  if(node.Name !="xml") 
                    Response.Write(GetNode(node));  
                } 
            }         string GetNode(System.Xml.XmlNode node) 
            { 
                string str = node.InnerText; 
                if (node.HasChildNodes) 
                { 
                    str = ""; 
                    foreach (System.Xml.XmlNode n in node.ChildNodes) 
                    { 
                        str += GetNode(n); 
                    } 
                } 
                return str; 
            }
      

  3.   


    我不要一次性用一个STR全部反回,我想用多个变量保存我想要的值!!
      

  4.   

    你的贴的XML格式不对,<DATA>节点无法匹配.
    用Xpath,很容易就能一个个拿到值
      

  5.   


    <PACKET>
     <BEGINTIME>
       <VALUE value="20100813194953" />  
       <TIME_INTERVAL value="5" unit="s" />  
     </BEGINTIME>
      <DATA>
        <ITEM value="ECG/HR" type="NoSub" />  
        <VALUE>
           <ORIGIN value="0" unit="bpm" />  
           <SCALE value="1" unit="bpm" />  
           <DIGITS>
              86 87 86 87 84 83 87 105 85 84 84 
           </DIGITS>  
        </VALUE>
     </DATA>
      <DATA>
        <ITEM value="SEX/HRE" type="Sub" />  
        <VALUE>
           <ORIGIN value="0" unit="bpm" />  
           <SCALE value="1" unit="bpm" />  
           <DIGITS>
              86 87 86 87 84 
           </DIGITS>  
        </VALUE>
     </DATA>
    </PACKET>
    只要可以解析成这个样子就可以了
      

  6.   

                XmlDocument document = new XmlDocument();
                document.Load("c:\\temp\\t.xml");
                XmlElement root = document.DocumentElement;
                Console.WriteLine("value=" + root["BEGINTIME"]["VALUE"].Attributes[0].Value);
                XmlElement e1 = root["BEGINTIME"]["TIME_INTERVAL"];
                Console.WriteLine("value=" + e1.Attributes[0].Value);
                Console.WriteLine("unit=" + e1.Attributes[1].Value);
      

  7.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Xml;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
        XmlDocument document = new XmlDocument();
                document.Load("c:\\temp\\t.xml");   //t.xml 是你的文件名
                XmlElement root = document.DocumentElement;
                Console.WriteLine("value=" + root["BEGINTIME"]["VALUE"].Attributes[0].Value);
                XmlElement e1 = root["BEGINTIME"]["TIME_INTERVAL"];
                Console.WriteLine("value=" + e1.Attributes[0].Value);
                Console.WriteLine("unit=" + e1.Attributes[1].Value);
            }
        }
    }如果这样你还看不懂, 我劝你还是先去学习 C#, 或者干脆别作技术了。
      

  8.   


    哈哈。你上面那个代表我正在试用,可以把属性中的值全可以采集出来,我现在还要把有多个<data></data>元素对的元素全遍历出来。。
      

  9.   

    比如我现在的文档是这样的,我想把<DATA></DATA>对中的子级元素属性及值全取出来。该用什么遍历啊
    <PACKET>
      <DATA>
      <ITEM value="ECG/HR" type="NoSub" />   
      <VALUE>
      <ORIGIN value="0" unit="bpm" />   
      <SCALE value="1" unit="bpm" />   
      <DIGITS>
      86 87 86 87 84 83 87 105 85 84 84  
      </DIGITS>   
      </VALUE>
     </DATA>
      <DATA>
      <ITEM value="SEX/HRE" type="Sub" />   
      <VALUE>
      <ORIGIN value="0" unit="bpm" />   
      <SCALE value="1" unit="bpm" />   
      <DIGITS>
      86 87 86 87 84  
      </DIGITS>   
      </VALUE>
     </DATA>
    </PACKET>
      

  10.   

    public  string m_val;
            public string m_beginTime;
            public string m_spitTime;
            public string m_spitUnit;
            public string m_endTime;
            public string m_moder;
            public string m_type;
            public string m_orgValue;
            public string m_orgUnit;
            public string m_sclValue;
            public string m_sclUnit;
            public string m_number;
            public TransXML() 
            {
                XmlDocument document = new XmlDocument();
                document.Load("F:\\vs_test\\xmlssss.xml");
                XmlElement root = document.DocumentElement;
                XmlNodeList nodeList;
                m_beginTime = root["BEGINTIME"]["VALUE"].Attributes[0].Value;
                m_spitTime = root["BEGINTIME"]["TIME_INTERVAL"].Attributes[0].Value;
                m_spitUnit = root["BEGINTIME"]["TIME_INTERVAL"].Attributes[1].Value;            nodeList = root.GetElementsByTagName("DATA");
               
                for (int i = 0; i < nodeList.Count; i++)
                {
                    m_moder = nodeList[i]["ITEM"].Attributes[0].Value;
                    m_type  = nodeList[i]["ITEM"].Attributes[1].Value;
                    m_orgValue = nodeList[i]["VALUE"]["ORIGIN"].Attributes[0].Value;
                    m_orgUnit = nodeList[i]["VALUE"]["ORIGIN"].Attributes[1].Value;
                    m_sclValue = nodeList[i]["VALUE"]["SCALE"].Attributes[0].Value;
                    m_sclUnit = nodeList[i]["VALUE"]["SCALE"].Attributes[1].Value;
                    m_number = nodeList[i]["VALUE"]["DIGITS"].InnerXml;
                }
                m_val = m_number;
            }
    呵呵,用这个机械的方法我解析出来了。但是,有个问题,如果我的同级元素中有多个,如<DATA></DATA>那么,我解析出来的参数岂不要用数组来保存,这样的话是不是太机器了。有没有更好的方法,使得我能非常方面的就能解析出
    <?xml version="1.0" ?>
    <PACKET>
     <BEGINTIME>
      <VALUE value="20100813194953" />   
      <TIME_INTERVAL value="5" unit="s" />   
     </BEGINTIME>
      <DATA>
      <ITEM value="ECG/HR" type="NoSub" />   
      <VALUE>
      <ORIGIN value="0" unit="bpm" />   
      <SCALE value="1" unit="bpm" />   
      <DIGITS>
      86 87 86 87 84 83 87 105 85 84 84  
      </DIGITS>   
      </VALUE>
     </DATA>
      <DATA>
      <ITEM value="SEX/HRE" type="Sub" />   
      <VALUE>
      <ORIGIN value="0" unit="bpm" />   
      <SCALE value="1" unit="bpm" />   
      <DIGITS>
      86 87 86 87 84  
      </DIGITS>   
      </VALUE>
     </DATA>
    </PACKET>当然,这中间有两个<DATA></DATA>如果我还有几十个呢???那我用这种方法解析岂不太土了。。请高手继续赐教。。
      

  11.   

    有种东西叫集合。去看看 ArrayList, List, hashtable, dictionary, tree。
      

  12.   

    用Xpath,很容易就能一个个拿到值