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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как проверить есть ли такой же узел в... другом XML-файле? (Visual С++ .NET) 
:(
    Опции темы
Druid
  Дата 4.6.2005, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



smile Как проверить есть ли такой же узел (тот же путь и имя) в другом XML-файле?
(Имея в распоряжении указатель на какой-нибудь элемент первого XML-файла)

И особенно часть этого вопроса:
smile Как найти путь узла XML-файла?

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


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


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

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



про XPath читал в MSDN ? если нет, то почитай.


--------------------
user posted image
PM MAIL WWW   Вверх
Druid
Дата 4.6.2005, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Немного читал.
Предположим, есть XML-файл:
Цитата

<?xml version="1.0" encoding="utf-8" ?>
<books>
<book>
  <title>tit
  <inside>one</inside>
      </title>
      <author>Tom Archer</author>
</book>
</books>

Если я правильно понял, команда:
Код

MSXML::IXMLDOMDocumentPtr pDomDocument;
MSXML::IXMLDOMNodePtr pNode;
... ...
pNode = pDomDocument->selectSingleNode(L"books/book[title = \"tit\"]");

должна дать указатель на нужный мне узел. Но она возвращает 0.
smile Что здесь не так? : (
PM MAIL   Вверх
stab
Дата 6.6.2005, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Надо переместить значение tit в атрибут или переместить\убрать <inside> или мучаться с такими XPath запросами:

books/book[title='tit\r\n\t\t\t\t\t\t\tone']

smile При проверках используется текст узла и всех его детей (InnerText), а не только самого узла.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Druid
Дата 6.6.2005, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



cully, а что значит \t\t\t\t\t\t\tone ?

На счёт того, что он берёт текст со всех дочерних включительно - это я позже догадался, но странно, неужели MicroSoft'овцы выпустили настолько несовершенную обработку XML, что она даже не может просто найти узел по имени и значению ?! smile
Об остальном я уже молчу, практически всё приходистя делать вручную...

P.S.: переместить tit не выйдет. Прога должна работать на любом XML-файле.

Это сообщение отредактировал(а) Druid - 7.6.2005, 00:18
PM MAIL   Вверх
stab
Дата 6.6.2005, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Druid @ 6.6.2005, 18:20)
cully, а что значит \t\t\t\t\t\t\tone ?

Это InnerText узла <title>.
Добавлено @ 22:15

точнее, его часть


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

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


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

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


 




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


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

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