Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/26: Рейтинг темы: голосов - 26, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 28

Чтение данных из XML

16.08.2011, 06:42. Показов 5460. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такой программный код подскажите плз как считать с хмл документа данные чтобы неписать все эти координаты(

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//Я тут начал писать, ток нечто невыходит,пробую считать хмл файл:
  private void xml()
        {
                     XmlDocument doc = new XmlDocument();
                        doc.load(map.text);
                        XmlNodeList list = doc.ChildNodes;
                        svg.Appendtext(list.count.Tostring());
 
                         XmlNodeList ordersList = doc.DocumentElement.ChildNodes;
        }
         foreach (XmlNode nodeOrder in ordersList)
         {
              Order order = new Order(nodeOrder.Attributes["d="].Value,float.Parse(nodeOrder.Attributes['.', ','].Value));
              
               orders.Add(order);
    }
}
 
        }
Сама программа и хмл файл в приложении
выработки.rar
map.rar
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.08.2011, 06:42
Ответы с готовыми решениями:

Чтение данных из XML
Всем Доброго времени суток!! Прошу вашей помощи! Пожалуйста дайте код, в котором идет чтение информации из xml файла и запись...

Чтение данных из xml
Привет, приложению нужно небольшая база данных, так вот, как записать в файл разобрался, а как извлечь нет... Гугл еще больше запутал) ...

Чтение данных из XML
Есть объект - продукт. У него есть свои свойства. Есть коллекция этих объектов. /// <summary> /// Метод реализующий...

16
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
16.08.2011, 08:52
Цитата Сообщение от fKey Посмотреть сообщение
Есть такой программный код подскажите плз как считать с хмл документа данные чтобы неписать все эти координаты(

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//Я тут начал писать, ток нечто невыходит,пробую считать хмл файл:
  private void xml()
        {
                     XmlDocument doc = new XmlDocument();
                        doc.load(map.text);
                        XmlNodeList list = doc.ChildNodes;
                        svg.Appendtext(list.count.Tostring());
 
                         XmlNodeList ordersList = doc.DocumentElement.ChildNodes;
        }
         foreach (XmlNode nodeOrder in ordersList)
         {
              Order order = new Order(nodeOrder.Attributes["d="].Value,float.Parse(nodeOrder.Attributes['.', ','].Value));
              
               orders.Add(order);
    }
}
 
        }
Сама программа и хмл файл в приложении
Вложение 91875
Вложение 91876
все данные координат записаны в аттрибутах, вроде бы данные можно так извлеч
C#
1
2
3
4
 foreach (XmlNode gigi in doc.DocumentElement[g].ChildNodes)
                   {
                       string value = gigi.Attributes["d"].Value;
                   }
но потом это полюбому нужно самому распарсить
0
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 28
16.08.2011, 09:58  [ТС]
Цитата Сообщение от asd321 Посмотреть сообщение
все данные координат записаны в аттрибутах, вроде бы данные можно так извлеч
C#
1
2
3
4
 foreach (XmlNode gigi in doc.DocumentElement[g].ChildNodes)
                   {
                       string value = gigi.Attributes["d"].Value;
                   }
но потом это полюбому нужно самому распарсить
вот как распарсить я незнаю как раз((
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
16.08.2011, 10:06
типа такого
C#
1
2
3
4
5
6
7
8
9
10
  string pars;
                   string[] dva = pars.Split(new Char[] { ',' });
                   string m = dva[0];
                   string[] coord1 = dva[1].Split(new Char[] { ' ' });
                   string coord1_x = coord1[0];
                   string coord1_y = coord1[1];
                   string[] coord2 = dva[2].Split(new Char[] { ' ' });
                   string coord2_x = coord1[0];
                   string coord2_y = coord1[1];
                   string d = dva[3];
0
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 28
16.08.2011, 10:43  [ТС]
а поподробнее можно?

Добавлено через 1 минуту
написал так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
private void xml()
        {
            XmlDocument doc = new XmlDocument();
            
 
            doc.Load(@"C:\Users\user\Documents\Visual Studio 2005\Projects\выработки\выработки\map.xml");
            XmlNodeList list = doc.ChildNodes;
            //svg.Appendtext(list.count.Tostring());
            XmlNodeList ordersList = doc.DocumentElement.ChildNodes;
 
            foreach (XmlNode gigi in doc.DocumentElement["g"].ChildNodes)
            {
                string value = gigi.Attributes["d"].Value;
            }
            string pars;
            string[] dva = pars.Split(new Char[] { ',' });
            string m = dva[0];
            string[] coord1 = dva[1].Split(new Char[] { ' ' });
            string coord1_x = coord1[0];
            string coord1_y = coord1[1];
            string[] coord2 = dva[2].Split(new Char[] { ' ' });
            string coord2_x = coord1[0];
            string coord2_y = coord1[1];
            string d = dva[3];
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
16.08.2011, 10:53
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 foreach (XmlNode gigi in doc.DocumentElement["g"].ChildNodes)
                       {
                           string pars = gigi.Attributes["d"].Value;
                           string[] mas = pars.Split(new Char[] { ',' });
                           List<PointF> points_list = new List<PointF>();
                           for (int i = 0; i < mas.Length; i++)
                           {
                               if (mas[i].Contains(" "))
                               {
                                   string[] temp = mas[i].Split(new Char[] { ' ' });
                                   PointF point = new PointF();
                                   point.X = (float)Convert.ToDouble(temp[0]);
                                   point.Y = (float)Convert.ToDouble(temp[1]);
                                   points_list.Add(point);
                               }
                           }
                           double m = (float)Convert.ToDouble(mas[0]);
                           double z = (float)Convert.ToDouble(mas[mas.Length-1]);
                          
                       }
1
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 28
16.08.2011, 11:17  [ТС]
огромное спасибо) и еше ты невкурсе как увеличить этот рисунок?
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
16.08.2011, 11:54
Цитата Сообщение от fKey Посмотреть сообщение
огромное спасибо) и еше ты невкурсе как увеличить этот рисунок?
смаря на чем он рисуется, вообще как я понял первый параметр это масштаб тама был где буква m, если на панели рисовать там есть специальные функции в обьектах Graphics, GraphicsPath типа Scale или Size, но если хочеш реализовать что то типа лупы, то там сложнее чуть...
0
 Аватар для Unril
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
16.08.2011, 12:22
Почитайте описание формата в начале.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Xml.Linq;
 
namespace ConsoleApplicationTest {
    public static class Program {
        private static readonly IFormatProvider FormatProvider = new CultureInfo( "en-US" );
 
        private static void Main() {
            XNamespace svgNamespace = "http://www.w3.org/2000/svg";
            IEnumerable<Path> paths = XDocument.Load( "map.xml" )
                .Descendants( svgNamespace + "path" )
                .Select( x => ParseStringToPath( x.Attribute( "d" ).Value ) );
 
            foreach ( Path path in paths ) {
                Console.WriteLine( path );
            }
 
            Console.ReadKey();
        }
 
        private static Path ParseStringToPath( string inputString) {
            string normalizedString = inputString.ToLower().Trim();
            bool isMoveTo = false;
            bool isClosed = false;
 
            if ( normalizedString.First() == 'm' ) {
                normalizedString = normalizedString.TrimStart( 'm', ' ' );
                isMoveTo = true;
            }
            if ( normalizedString.Last() == 'z' ) {
                normalizedString = normalizedString.TrimEnd( 'z', ' ' );
                isClosed = true;
            }
 
            IEnumerable<PointF> points = normalizedString
                .Split( ' ' )
                .Select( s => {
                    string[] xyPair = s.Split( ',' );
                    return new PointF( float.Parse( xyPair[ 0 ], FormatProvider ),
                                       float.Parse( xyPair[ 1 ], FormatProvider ) );
                } );
 
            if ( isMoveTo ) {
                return new Path( points.Skip( 1 ), isClosed, points.First() );
            }
            return new Path( points, isClosed, new PointF() );
        }
    }
 
    /// <summary>
    /// Путь.
    /// </summary>
    public class Path {
        public Path( IEnumerable<PointF> points, bool closed, PointF moveTo ) {
            Points = points.ToList();
            Closed = closed;
            MoveTo = moveTo;
        }
 
        /// <summary>
        /// Точки пути.
        /// </summary>
        public List<PointF> Points { get; private set; }
 
        /// <summary>
        /// Замкнутость пути.
        /// </summary>
        public bool Closed { get; private set; }
 
        /// <summary>
        /// Начальная точка пути.
        /// </summary>
        public PointF MoveTo { get; private set; }
 
        public override string ToString() {
            return string.Format( "Points: {0}\nClosed: {1}\nMoveTo: {2}\n", string.Join( "; ", Points ), Closed, MoveTo );
        }
    }
}
А вообще, лучше не велосипедить и воспользоваться чем-то вроде SVG rendering engine.
0
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 28
16.08.2011, 12:31  [ТС]
m-это положение 1 точки координат.
прям на форме увеличить чуток хотяб(
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
16.08.2011, 13:20
Цитата Сообщение от fKey Посмотреть сообщение
m-это положение 1 точки координат.
прям на форме увеличить чуток хотяб(
C#
1
2
Graphics dc=e.Graphics;
dc.ScaleTransform(2,2);
но если увеличивать это то и форма должна быть опходу увеличена, чтобы увеличивать определенную область я просто для всех приписывал коэфициент масштабирования,но если обьекты GraphicsPath то можно применить метод Transform, там при задании матрицы он делает с обьектом все что угодно в данном случае ее можно настройить дял увеличения, если же Graphics то то чт овыше показал.
1
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 28
17.08.2011, 05:09  [ТС]
я так пробывал линии просто напросто расползаются(
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
17.08.2011, 08:34
Цитата Сообщение от fKey Посмотреть сообщение
я так пробывал линии просто напросто расползаются(
как так? если к каждой точке коэфициент приписать т ове будет кул, либо вы не к каждой точке приписываете, но вообще надо использовать мтарицу трансформации это наиболее правильно и объектно ориентированно)типа
0
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 28
17.08.2011, 12:47  [ТС]
а поподробнее про матрицу?
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
17.08.2011, 13:37
пример из мсдн
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void TransformExample(PaintEventArgs e)
{
 
    // Create a path and add and ellipse.
    GraphicsPath myPath = new GraphicsPath();
    myPath.AddEllipse(0, 0, 100, 200);
 
    // Draw the starting position to screen.
    e.Graphics.DrawPath(Pens.Black, myPath);
 
    // Move the ellipse 100 points to the right.
    Matrix translateMatrix = new Matrix();
    translateMatrix.Translate(100, 0);
    myPath.Transform(translateMatrix);
 
    // Draw the transformed ellipse to the screen.
    e.Graphics.DrawPath(new Pen(Color.Red, 2), myPath);
}
при задании самой матрицы можно изменять масшатб
вот инфа по матрице соответсвенно
матрица
тоесть при обьявлении матрицы
C#
1
  Matrix translateMatrix = new Matrix(1,0,0,1,0,0);
помоему вот так будет увеличнеие с коэффициентом 1 ну там поэкспериментируйте
0
 Аватар для агерон
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
17.08.2011, 13:58
так все смотрели смотрели файл а главного не увидели
1) это не просто XML а формат Web графики SVG
2) его можно просматривать через обычный браузер, но лучше через Svg Viwer типа Inkscape
3) для работы с SVG в C#, на вскидку, есть хотя бы вот это
0
17.08.2011, 14:05

Не по теме:

Цитата Сообщение от агерон Посмотреть сообщение
так все смотрели смотрели файл а главного не увидели
Я про это ещё на первой странице писал.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.08.2011, 14:05
Помогаю со студенческими работами здесь

Чтение данных из XML
Добрый День ! Создаю свое первое приложение , имеется кнопка на форме по нажатию кнопки открывается bat файл Пример ...

Чтение XML данных (XMLReader)
Есть xml файл и в нем есть блок ... &lt;users&gt; &lt;user id=&quot;1&quot; value1=&quot;afaaf&quot; value2=&quot;racad&quot; value3=&quot;xarcd&quot;&gt;User1&lt;/user&gt; &lt;user...

Чтение данных из XML и запись в ListBox
Здравствуйте! Подскажите, пожалуйста, как сделать, чтобы из XML файла информация записывалась листбокс, а из листбокса в разные текстбоксы,...

Чтение данных XML
Даны такие поля в XML файлике: &lt;blablabla:field1&gt;value1&lt;/blablabla:field1&gt; &lt;blablabla:field2&gt;value2&lt;/blablabla:field2&gt; ...

Чтение данных из XML в Compact Framework
Здравствуйте!!! Не могу считать из файла XML данные, выбрасывает ошибку что не возможно найти путь к файлу, предоставляю код, что в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru