Использование данных из InnerText - PullRequest
0 голосов
/ 10 апреля 2019

Можно ли использовать данные, извлеченные из InnerText, в качестве координатных точек y для положения пикселей?

Мне удалось получить строковые элементы из XML-файла - тег "SequenceInfo".

Пример файла .xml:

<SequenceInfo HasSmoke="" Azimuth="267.2" Inclination="682" Zoom="10329" TowerName="Makoszka" Time="2015-03-18 13:10:22">
  <Horizon>316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,320,320,320,321,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,324,324,324,324,324,324,324,326,326,326,326,326,326,326,326,324,324,322,322,322,322,322,322,322,322,322,322,322,322,323,324,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,324,324,322,322,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320</Horizon>
</SequenceInfo>

Я получаю текстовое содержимое указанного узла следующим образом:

316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316 , 316.316.316.316.316.316.316.316.316.318.318.318.318.318.318.318.318.318.318.318.318.318.318.318.318 , 318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,320,320,320,321,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,324,324,324,324,324,324,324,326,326,326,326,326,326,326,326,324,324,322,322,322,322,322,322,322,322,322,322,322,322,323,324,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,324,324,322,322,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320

Такие данные хранятся в объекте 'xtr' (свойство InnerText).

Можем ли мы продвинуть эти данные еще дальше? Например, как координаты «у»?

Часть моего кода ниже:

XmlDocument xtr = new XmlDocument();
string fileName = OFD.FileName;
FileInfo fileInfo = new FileInfo(fileName);
string directoryFullPath = fileInfo.DirectoryName;
fileName = Path.Combine(directoryFullPath, "info.xml");
xtr.Load(fileName);
XmlNodeList list = xtr.GetElementsByTagName("SequenceInfo");

Ответы [ 2 ]

0 голосов
/ 19 апреля 2019

Проблема решена.Вот мой код:

XmlDocument xtr = new XmlDocument();
            string fileName = OFD.FileName;
            FileInfo fileInfo = new FileInfo(fileName);
            string directoryFullPath = fileInfo.DirectoryName;
            fileName = Path.Combine(directoryFullPath, "info.xml");
            xtr.Load(fileName);
            XmlNodeList list = xtr.GetElementsByTagName("SequenceInfo");
            string[] punkty = xtr.InnerText.Split(',');
            List<Point> punkty1 = new List<Point>();
            for (int i = 0; i < punkty.Length; i++)
            {
                punkty1.Add(new Point { X = i, Y = int.Parse(punkty[i])});
            }
0 голосов
/ 10 апреля 2019

Неясно, действительно ли вы извлекли данные и что вы хотите с ними делать после того, как извлекли их ... но вот пример, с которого следует начать:

        // ... get the data from your XML somehow ...
        string data = "316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,320,320,320,321,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,324,324,324,324,324,324,324,326,326,326,326,326,326,326,326,324,324,322,322,322,322,322,322,322,322,322,322,322,322,323,324,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,324,324,322,322,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320";
        // Convert the Text Data to Points:
        var points = from y in data.Split(",".ToCharArray()) select new Point(0, int.Parse(y));
        // Do something with the Points:
        foreach(Point p in points)
        {
            Console.WriteLine(p.ToString());
        }
...