Wykorzystanie pobranego tekstu z właściwości InnerText

Wykorzystanie pobranego tekstu z właściwości InnerText
Clytra
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

Cześć!

Jestem początkująca w programowaniu.
Potrzebowałabym Waszej rady odnośnie możliwości wykorzystania pozyskanych danych z pliku .xml za pomocą XMLNode.InnerText.
Udało mi się pobrać łańcuch znaków z pliku .xml tą metodą. Kod, którym udało mi się to wykonać jest następujący:

Kopiuj
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");

Zgodnie z powyższym kodem, pobrałam dane tekstowe z pliku 'info.xml' i przypisałam je do obiektu 'xtr'.
"SequenceInfo" to tag z pliku .xml.
Przykładowa zawartość pliku .xml:

Kopiuj
<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>

Natomiast to, co uzyskałam to ciąg tekstu:
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

która jest przechowywana we właściwości InnerText.

I teraz bardzo ważne dla mnie pytanie.
Znacie sposób na przypisanie tych danych, jako współrzędnych'Y' punktu (w tym wypadku piksela na zdjęciu)? Mam tutaj na myśli, iż zgodnie z powyższą zawartością pliku .xml, punkt pierwszy będzie mieć wartość (0,316), następny (1,316) itd? Współrzędne x już sama pokombinuję, ale ze współrzędnymi y (pobranym ciągiem znaków z pliku xml) potrzebowałabym Waszych wskazówek.

Z góry dziękuję za pomoc :)

Ktos
  • Rejestracja: dni
  • Ostatnio: dni
1

Nie do końca zrozumiałem, czy o to chodzi, ale możesz po prostu ten tekst oddzielany przecinkami rozdzielić względem nich:

Kopiuj
var punkty = innerText.Split(',');

I dostajesz tablicę, gdzie punkty[0] to 316, punkty[1] to 316 i tak dalej.

Clytra
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0
Ktos napisał(a):

Nie do końca zrozumiałem, czy o to chodzi, ale możesz po prostu ten tekst oddzielany przecinkami rozdzielić względem nich:

Kopiuj
var punkty = innerText.Split(',');

I dostajesz tablicę, gdzie punkty[0] to 316, punkty[1] to 316 i tak dalej.

Oooo hehe no tak faktycznie :D. Prosta sprawa można powiedzieć. Dzięki!
Teraz pozostaje mi te wartości przyporządkować jako współrzędne Y dla kolejnych punktów.

Dziękuję :)

Clytra
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

Problem rozwiązany :)

Kopiuj
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])});
            }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.