日期:2014-05-17  浏览次数:20771 次

c#读取xml问题。。很简单

xml:
<Seriesport name="SeriesportSetting">
  <portnumber>COM5</portnumber>
  <baudrate>57600</baudrate>
  <databits>8</databits>
  <paritybit>无</paritybit>
  <stopbit>2</stopbit>
  </Seriesport>
请问我怎么用c#取出COM5、57600这样的值呢?

------解决方案--------------------
很多方法。

最简单的是使用XmlSerializer进行反序列化。

但是比较灵活、底层一些的做法是可以使用Linq to XML、XMLDocument直接对字符串进行解析。
------解决方案--------------------
C# code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string xml = @"<Seriesport name=""SeriesportSetting"">
  <portnumber>COM5</portnumber>
  <baudrate>57600</baudrate>
  <databits>8</databits>
  <paritybit>无</paritybit>
  <stopbit>2</stopbit>
  </Seriesport>
";
            XmlDocument xdoc = new XmlDocument();
            xdoc.LoadXml(xml);
            string portnumber = xdoc.ChildNodes[0].ChildNodes[0].InnerText;
            string baudrate = xdoc.ChildNodes[0].ChildNodes[1].InnerText;
            Console.WriteLine(portnumber);
            Console.WriteLine(baudrate);
        }
    }
}

------解决方案--------------------
C# code
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(@"c:\test.xml");
        Console.WriteLine(xmlDoc.DocumentElement["portnumber"].InnerText);
        Console.WriteLine(xmlDoc.DocumentElement["baudrate"].InnerText);