Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод данных из xml 
:(
    Опции темы
WebWolf
Дата 25.7.2009, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 25.7.2009
Где: Россия

Репутация: нет
Всего: нет



Каким образом вывести данные из нужного каталога в примере снизу есть каталог Music как вывести только из него названия каналов ссылки и картинки.


Код


<?xml version="1.0" encoding="utf-8" ?>
<catalog>
<type title="Music">
<coutry name="Russia">
<tv title="Box TV" url="mms://81.89.49.210/musicbox?MSWMExt=.asf" pic="http://tv.akado.ru/ai/channel/5/logo120x120/logo120x120.gif"/>
<tv title="Box2 TV" url="mms://81.89.49.210/musicbox?MSWMExt=.asf" pic="http://tv.akado.ru/ai/channel/5/logo120x120/logo120x120.gif"/>
<tv title="Box3 TV" url="mms://81.89.49.210/musicbox?MSWMExt=.asf" pic="http://tv.akado.ru/ai/channel/5/logo120x120/logo120x120.gif"/>
</coutry>
</type>
<type title="News">
<coutry name="Russia">
<tv title="News TV" url="mms://81.89.49.210/musicbox?MSWMExt=.asf" pic="http://tv.akado.ru/ai/channel/5/logo120x120/logo120x120.gif"/>
</coutry>
</type>
<type title="lol">
<coutry name="Russia">
<tv title="lol TV" url="mms://81.89.49.210/musicbox?MSWMExt=.asf" pic="http://tv.akado.ru/ai/channel/5/logo120x120/logo120x120.gif"/>
</coutry>
</type>
<type title="lol2">
<coutry name="Russia">
<tv title="lol2 TV" url="mms://81.89.49.210/musicbox?MSWMExt=.asf" pic="http://tv.akado.ru/ai/channel/5/logo120x120/logo120x120.gif"/>
</coutry>
</type>
</catalog>

-----------------------------------------------------------
Код

var stream = new StreamReader(@"CatalogTV.xml");
var readTV = new XmlTextReader(stream);
XmlDocument tvDoc = new XmlDocument();
tvDoc.Load(readTV);

// выводим все типы (Music,News,lol ...)
videoItems = tvDoc.SelectNodes("catalog/type");
foreach (XmlNode videoItem in videoItems)
{
typeTV.Items.Add(String.Format(videoItem.Attributes["title"].InnerText));
}


//Когда начинаю выводит но выводит все названия каналов. Как вывести кз конуретного каталога) т.к я выбираю в ComboBox Music и в соответствии с это категорией я получаю все фильмы из этого каталога. Должно получится (Box TV, Box2 TV, Box3 TV)
videoItems = tvDoc.SelectNodes("catalog/type/coutry/tv");

foreach (XmlNode videoItem2 in videoItems)
{
if (a == typeTV.SelectedItem.ToString())
{
catalogTV.Items.Add(String.Format(videoItem2.Attributes["title"].InnerText));
}

Что мне надо:
Я вывожу все типы в ComboBox (Music,News,lol...), потом выбираю конкретный тип (music) и получаю в лист боксе все каналы конкретного типа (Box TV,Box2 TV)... потом выбираю конкретный канал и получаю все его данные: название (Box TV), ссылка, картинка итд

Это сообщение отредактировал(а) WebWolf - 25.7.2009, 13:19
PM MAIL WWW ICQ Skype   Вверх
WebWolf
Дата 25.7.2009, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 25.7.2009
Где: Россия

Репутация: нет
Всего: нет



ХЕЛП ну хоть кто нибудь любые идеи(( просто очень надо но не могу сообразить((
PM MAIL WWW ICQ Skype   Вверх
antslava
Дата 25.7.2009, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 16.7.2008
Где: Одесса

Репутация: нет
Всего: 2



Лови проект =)

Присоединённый файл ( Кол-во скачиваний: 20 )
Присоединённый файл  VinogradXML_1.zip 144,03 Kb
PM MAIL ICQ Skype   Вверх
WebWolf
Дата 25.7.2009, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 25.7.2009
Где: Россия

Репутация: нет
Всего: нет



Спасибо тебе огромное)) Ты настоящий профи) smile 
PM MAIL WWW ICQ Skype   Вверх
WebWolf
Дата 25.7.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 25.7.2009
Где: Россия

Репутация: нет
Всего: нет



Только вот за гвоздка с этим куском кода:
 
Код

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if(listBox1.SelectedIndex != null)
            {
                XmlNodeList list = _select.ChildNodes;
                foreach (XmlNode node in list)
                {
                    XmlNodeList list_2 = node.ChildNodes;
                    foreach (XmlNode xmlNode in list_2)
                    {
                        if(xmlNode.Attributes["title"].Value.Equals(listBox1.SelectedItem.ToString()))
                        {
                            textBox1.Text = xmlNode.Attributes["title"].Value + " " +
                                            xmlNode.Attributes["url"].Value + " " + xmlNode.Attributes["pic"].Value;
                        }
                    }
                }
            }
        }

Когда выбираем Допустим раздел Music потом выбираем ТВ то все пашет)) потом когда мы пытаемся сменить раздел то listBox1.SelectedItem.ToString() получается равным null . Я делаю на WPF
PM MAIL WWW ICQ Skype   Вверх
WebWolf
Дата 25.7.2009, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 25.7.2009
Где: Россия

Репутация: нет
Всего: нет



вот мой проект!

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  OnlineTV.rar 157,43 Kb
PM MAIL WWW ICQ Skype   Вверх
antslava
Дата 25.7.2009, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 16.7.2008
Где: Одесса

Репутация: нет
Всего: 2



Замени 
Код

 if(listBox1.SelectedIndex != null)

на
Код

if(listBox1.SelectedItem != null)


Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  WPFVinograd.zip 44,67 Kb
PM MAIL ICQ Skype   Вверх
antslava
Дата 26.7.2009, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 16.7.2008
Где: Одесса

Репутация: нет
Всего: 2



Вот еще проект с поиском через XPath

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  VinogradXML_1.zip 40,86 Kb
PM MAIL ICQ Skype   Вверх
Rififi
Дата 26.7.2009, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 5
Всего: 36



снизу есть каталог Music как вывести только из него названия каналов ссылки и картинки.

Юзай xpath
Код
var xml = new XmlDocument();
xml.Load("...");

var music = xml.SelectNodes("/catalog/type[@title=\"Music\"]/coutry/tv");
var data = music.OfType<XmlNode>().Select(
    p => new
    {
        Title = p.Attributes["title"].Value,
        Url = p.Attributes["url"].Value,
        Pic = p.Attributes["pic"].Value
    }).ToList();

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0766 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.