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

本文关键字:提取 int XML 何解析 字符串 | 更新日期: 2023-09-27 18:16:45

解析下面的字符串数据类型的XML并将id作为int数组的简单方法是什么?使用c#。净

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

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

有很多方法可以做到这一点,对于这个简单的例子,大多数方法都很简单。例如,对于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();

可以使用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++;
        }