Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Чтение и запись XML документа / 2 сообщений из 2, страница 1 из 1
20.02.2005, 21:16
    #32925159
JeSert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение и запись XML документа
Облазил много не нашол нормального примера, который бы у меня правильно работал есть к примеру xml документ
Код: plaintext
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.
<товар>
       <хлеб>
              <белый>
                    <предприятие name="Колобки"/>
                    <предприятие name="Пекарня Макаревича"/>
                    <предприятие name="Булки и Ко"/>
              </белый>
              <черный>
                    <предприятие name="Емеля"/>
                    <предприятие name="Змей Гороныч"/>
                    <предприятие name="Пирожки Инт."/>
              </черный>
       </хлеб>
       <масло>
              <белый>
                    <предприятие name="Колобки"/>
                    <предприятие name="Пекарня Макаревича"/>
                    <предприятие name="Булки и Ко"/>
              </белый>
              <черный>
                    <предприятие name="Емеля"/>
                    <предприятие name="Змей Гороныч"/>
                    <предприятие name="Пирожки Инт."/>
              </черный>
       </масло>
</товар>

далее мой код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
xmlRead = new XmlTextReader("course.xml");
xmlRead.WhitespaceHandling = WhitespaceHandling.None; // пропускаем пустые узлы
while(xmlRead.Read())
{
	if(xmlRead.NodeType == XmlNodeType.Element)
	{
		if(xmlRead.Name == "белый")
		{
			while(xmlRead.Read() && xmlRead.Name == "предприятие")
			{
				MessageBox.Show(xmlRead.GetAttribute("name").ToString());
			}
		}
	}
}
ТАК вот я знаю что тут неправильно хотя я брал с реального примера
получаетца что он заходит во все узлы "белый", а мне нужно что бы только в хлеб и ВСЕ
...
Рейтинг: 0 / 0
21.02.2005, 13:14
    #32926016
Melo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение и запись XML документа
Ну, например, вот так:

Код: plaintext
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.
xmlRead = new XmlTextReader("d:\\tmp\\bread\\src.xml");
xmlRead.WhitespaceHandling = WhitespaceHandling.None; // пропускаем пустые узлы
bool bread = false;
while(xmlRead.Read())
{
	switch(xmlRead.NodeType)
	{
		case XmlNodeType.Element:
			if(xmlRead.Name == "хлеб")
			{
				bread = true;
			}
			else 
			{
				if(bread && xmlRead.Name == "белый")
				{
					while(xmlRead.Read() && xmlRead.Name == "предприятие")
					{
						MessageBox.Show(xmlRead.GetAttribute("name").ToString());
					}
				}
			}
			break;
		case XmlNodeType.EndElement:
			if(xmlRead.Name == "хлеб")
			{
				bread = false;
			}
			break;
		default:
			break;
	}
}	
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Чтение и запись XML документа / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]