C++ Builder 6 и XMLDocument
От: M_Ocean  
Дата: 28.10.03 11:57
Оценка:
TXMLDocument — этот компонент умеет работать с XPath?

Как можно подключить TLB MSXML 3.0? Пытаюсь импортировать библиотеку, говорит, что класс TXMLDocument уже инсталирован, че делать? Удалить компонет из стандартной палитры — не вариант.
Re: C++ Builder 6 и XMLDocument
От: Dmitry Baranov  
Дата: 28.10.03 12:00
Оценка:
Здравствуйте, M_Ocean, Вы писали:

M_O>TXMLDocument — этот компонент умеет работать с XPath?


M_O>Как можно подключить TLB MSXML 3.0? Пытаюсь импортировать библиотеку, говорит, что класс TXMLDocument уже инсталирован, че делать? Удалить компонет из стандартной палитры — не вариант.


В диалоге выбора библиотеки типов есть окошко с именами классов. Надо просто переименовать предлагаемое по умолчанию название "TXMLDocument" на что-нить другое перед генерацией юнита.
Re[2]: C++ Builder 6 и XMLDocument
От: M_Ocean  
Дата: 28.10.03 12:52
Оценка:
Ага! Сделал...

далее метод load:

VARIANT_BOOL flag = false;
xmldocOptions->async = false;
xmldocOptions->load(Path, &flag);


Прикол в том, что Path иммет тип tagVARIANT ("дикая" структура). Как туда присвоить char* (там содержится имя файла)?
Re[3]: C++ Builder 6 и XMLDocument
От: Владик Россия  
Дата: 28.10.03 13:18
Оценка:
Здравствуйте, M_Ocean, Вы писали:

M_O>Прикол в том, что Path иммет тип tagVARIANT ("дикая" структура). Как туда присвоить char* (там содержится имя файла)?


xmldocOptions->load(Variant(Path), &flag);
Как все запущенно...
Re[4]: C++ Builder 6 и XMLDocument
От: M_Ocean  
Дата: 28.10.03 13:35
Оценка:
Здравствуйте, Владик, Вы писали:

В>Здравствуйте, M_Ocean, Вы писали:


M_O>>Прикол в том, что Path иммет тип tagVARIANT ("дикая" структура). Как туда присвоить char* (там содержится имя файла)?


В>xmldocOptions->load(Variant(Path), &flag);


не работает... если есть пример, пришли, пожалуйста. Я пробую так:

msDOMDocument30Ptr xmldocOptions = ComsDOMDocument30::Create();
VARIANT_BOOL flag = false;
xmldocOptions->async = (VARIANT_BOOL)false;
xmldocOptions->load(Variant("Options.xml"), &flag);


не грузит
Re[5]: C++ Builder 6 и XMLDocument
От: Владик Россия  
Дата: 28.10.03 14:48
Оценка:
Здравствуйте, M_Ocean, Вы писали:

В>>xmldocOptions->load(Variant(Path), &flag);

M_O>не работает...

Что значит не работает? Ты просил VARIANT из char * — я тебе показал как.

M_O>если есть пример, пришли, пожалуйста. Я пробую так:


Я не использую борландовских оберток. Предпочитаю напрямую, меньше "сюрпризов" получается.

CComPtr<IXMLDOMDocument> xmlDoc;
HRCheck hr=xmlDoc.CoCreateInstance(__uuidof(DOMDocument));
VARIANT_BOOL success = false;
    hr=xmlDoc->load(Variant("xml.xml"), &success);
    if (!success)
        throw Exception("Ошибка загрузки XML");


Все работает.

P.S. HRCheck — класс, который кидает исключение при попытке присвоить ему "ошибочный" HRESULT.
Как все запущенно...
Re[6]: C++ Builder 6 и XMLDocument
От: Дмитрий Баранов  
Дата: 28.10.03 17:54
Оценка:
Здравствуйте, Владик, Вы писали:

В>Здравствуйте, M_Ocean, Вы писали:

В>Я не использую борландовских оберток. Предпочитаю напрямую, меньше "сюрпризов" получается.

В>
В>CComPtr<IXMLDOMDocument> xmlDoc;
В>HRCheck hr=xmlDoc.CoCreateInstance(__uuidof(DOMDocument));
В>VARIANT_BOOL success = false;
В>    hr=xmlDoc->load(Variant("xml.xml"), &success);
В>    if (!success)
В>        throw Exception("Ошибка загрузки XML");
В>


В>Все работает.


Раз уж CComPtr, отчего бы и CComVariant не использовать? )
Re[7]: C++ Builder 6 и XMLDocument
От: Владик Россия  
Дата: 28.10.03 21:32
Оценка:
Здравствуйте, Дмитрий Баранов, Вы писали:

ДБ>Раз уж CComPtr, отчего бы и CComVariant не использовать? )


Страшно. С CComBSTR уже нарвался
Автор: Владик
Дата: 20.10.03
на особенность "борландовской ATL".
Как все запущенно...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.