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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по XPath expression, нужна подсказка 
:(
    Опции темы
cosamia
Дата 28.11.2006, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



есть xml файл, такого типа:

Код
<books>
    <item author="XYZ" ...>
        <data1>...
        ....
    </item>
</books>


отлично вывожу все данные:

Код
                string allAuthors = "//item/@author";
                XmlNodeList nodelist;
                nodelist = document.SelectNodes(allAuthors);
                Display(nodelist);


        private void Display(XmlNodeList authors)
        {
            foreach (XmlNode xmlNode in authors) 
            {
                Console.WriteLine(xmlNode.Value);
            }
        }


но если хочу вывести только те записи где автор= XYZ
то делаю так:

Код
                string selectedAuthor="XYZ"; 
                string booksXYZ =  "item[@author=selectedAuthor]";            
                nodelist = document.SelectNodes(booksXYZ);
                Display(nodelist);

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

PM   Вверх
archimed7592
Дата 28.11.2006, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


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

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



м. б. лучше так:
Код
string selectedAuthor="XYZ"; 
string booksXYZ =  String.Format ("item[@author={0}]", selectedAuthor);
string booksXYZ =  "item[@author=" + selectedAuthor + "]"; // или хотя бы так :)


Это сообщение отредактировал(а) archimed7592 - 28.11.2006, 20:41


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
cosamia
Дата 28.11.2006, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



не работает...
PM   Вверх
mr.DUDA
Дата 29.11.2006, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Хехе, метод проб и ошибок рулит:

Код
using System;
using System.Xml;

class Program
{
    static void Main()
    {
        string xml = @"
<books>
    <item author=""XYZ"">
        <data1 />
    </item>
    <item author=""another author"">
        <data1 />
    </item>
    <item author=""XYZ"">
        <data1>WOW !!!</data1>
    </item>
</books>";


        XmlDocument doc = new XmlDocument();
        doc.LoadXml(xml);
        foreach (XmlNode node in doc.SelectNodes(@"books/item[@author='XYZ']"))
            Console.WriteLine(node.OuterXml);
    }
}



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

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


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

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


 




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


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

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