Чтение отдельных xml вкладок C резкое - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь прочитать отдельные значения Lat, Long и Alt из файла xml ниже, используя c. Формат для xml отличается от того, с чем я ранее работал. Я могу извлечь элементы из файла, но я пытаюсь прочитать только отдельные значения для Lat, Long, Alt и т. Д. c. Я не смог понять, как это сделать с XmlReader или LINQ.

Файл:

<Entry MC="11" Time="0.00" ActName="SCR_ON">
   <ActingPlat ID="1"/>
   <AgainstPos Lat="24.5399" Lon="46.7704" Alt="567"/>
</Entry>

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

Использование Xml Linq

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XDocument doc = XDocument.Load(FILENAME);

            var results = doc.Descendants("AgainstPos").Select(x => new
            {
                lat = (decimal)x.Attribute("Lat"),
                lon = (decimal)x.Attribute("Lon"),
                alt = (decimal)x.Attribute("Alt")
            }).ToList();
        }
    }
}
0 голосов
/ 09 апреля 2020

Чтобы получить широту, выполните следующие действия:

string xml = "<Entry MC=\"11\" Time=\"0.00\" ActName=\"SCR_ON\"><ActingPlat ID=\"1\"/><AgainstPos Lat=\"24.5399\" Lon=\"46.7704\" Alt=\"567\"/></Entry>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
var latitude = doc.SelectSingleNode("//AgainstPos").Attributes["Lat"].InnerText;

Вы можете получить другие значения, используя тот же шаблон

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...