如何解析字符串XML并提取int值

时间:2014-08-05 23:28:05

标签: c# xml linq-to-xml

解析XML的简单方法是什么,其下面是字符串数据类型,并将ID作为int数组获取。使用C#.Net

   <IDs>
    <ID>1</ID>
    <ID>2</ID>
    <ID>3</ID>
    <ID>4</ID>
  </IDs>

2 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点,对于这个简单的情况,大多数方法都很简单。例如,使用XDocument,我们可以使用LINQ或XPath查询<ID>

var xml = @"<IDs>
    <ID>1</ID>
    <ID>2</ID>
    <ID>3</ID>
    <ID>4</ID>
  </IDs>";
var doc = XDocument.Parse(xml);
var idsFromLinq = doc.Root
                     .Elements("ID")
                     .Select(o => (int)o)
                     .ToList();
var idsFromXPath = doc.XPathSelectElements("/IDs/ID")
                      .Select(o => (int)o)
                      .ToList();

答案 1 :(得分:-2)

您可以使用XmlDocument类型:

        string _xml = "<IDs><ID>1</ID><ID>2</ID><ID>3</ID><ID>4</ID></IDs>";

        XmlTextReader _xtr = new XmlTextReader(new StringReader(_xml));
        _xtr.WhitespaceHandling = WhitespaceHandling.Significant;

        XmlDocument _xdoc = new XmlDocument();
        _xdoc.Load(_xtr);

        XmlElement root = _xdoc.DocumentElement;
        XmlNodeList nodes = root.SelectNodes("/IDs/ID");

        int[] _ids = new int[4];
        int i = 0;

        foreach (XmlNode node in nodes)
        {
            _ids[i] = Convert.ToInt32(node.InnerText);
            i++;
        }