XML文件格式:<sms_list>
<sms>
<sms_id>9DEA2762C0EA4BFEB93845C5DACBFB9</sms_id>
<sms_number>13411885227</sms_number>
<sms_content>GTS*493*GTSBOXMTK*1245789865321245</sms_content>
<sms_time>0</sms_time>
</sms>
<sms>
<sms_id>F24A1E6DFCFB4147AE78B9E8DA84E61</sms_id>
<sms_number>10665234</sms_number>
<sms_content>ee29_493_20004_1_1245789865321245</sms_content>
<sms_time>0</sms_time>
</sms>
</sms_list>我想把其中的<sms_number>,和<sms_content>节点读取出来,存放在数组中去
我写的方法只能读取出一条数据来
请问各位,怎么把它们都读取出来呢?string[] longphone = xmlPage.Element("sms_list").Element("sms").Elements("sms_number").Select(s => s.Value).ToArray();这样只能读取出一条数据来~~

解决方案 »

  1.   


    string[] longphone = xmlPage.Descendants("sms").Select(s=>s.Element("sms_number").Value).ToArray();
                string[] longphone1 = xmlPage.Descendants("sms").Select(s => s.Element("sms_number").Value + "|" + s.Element("sms_content").Value).ToArray();
      

  2.   


     string xml = @"<sms_list>
            <sms>
                <sms_id>9DEA2762C0EA4BFEB93845C5DACBFB9</sms_id>
                <sms_number>13411885227</sms_number>
                <sms_content>GTS*493*GTSBOXMTK*1245789865321245</sms_content>
                <sms_time>0</sms_time>
            </sms>
            <sms>
                <sms_id>F24A1E6DFCFB4147AE78B9E8DA84E61</sms_id>
                <sms_number>10665234</sms_number>
                <sms_content>ee29_493_20004_1_1245789865321245</sms_content>
                <sms_time>0</sms_time>
            </sms>
        </sms_list>";
                XmlDocument doc = new XmlDocument();
                XmlTextReader reader = new XmlTextReader(new StringReader(xml));
                doc.Load(reader);
                XmlNodeList cmsList = doc.SelectNodes("sms_list/sms");
                foreach (XmlNode node in cmsList)
                {
                    XmlNode number = node.SelectSingleNode("sms_number");
                    Console.WriteLine(number.Value); //这里是number的值
                    XmlNode content = node.SelectSingleNode("sms_content");
                    Console.WriteLine(content.Value);//这里是content的值
                }由于公司没法复制到本地,我没有测试,呵呵,看的懂就行了