IXMLDOMDocument2Ptr не получается работать как с DOM
От: gato Россия  
Дата: 03.06.08 09:53
Оценка:
Доброго времени суток.
Сталкнулся с такой проблемой и попал в полный затуп:


MSXML2::IXMLDOMDocument2Ptr pDOM2;
pDOM2.CreateInstance(__uuidof(FreeThreadedDOMDocument40));
pDOM2->async = VARIANT_FALSE;
pDOM2->resolveExternals = VARIANT_FALSE;
pDOM2->loadXML("какойто xsl");          // Тут MSXML долампады XML это или XSL, главное чтоб по стандарту все было =)
pDOM2->setProperty(_bstr_t("SelectionLanguage"), _variant_t(_bstr_t("XPath")));

BppNode pNodeTest = pDOM2->selectSingleNode("/xsl:stylesheet/xsl:template/xsl:value-of");
......


При попытке выполнить selectSingleNode приложение падает, ни номера ошибки ни ее описания увидеть не могу.
Я так предполагаю, что нужно както перекастить DOM2 в DOM, но как? Или ошибка не в этом?
..
Re: IXMLDOMDocument2Ptr не получается работать как с DOM
От: Константин Л.  
Дата: 03.06.08 16:51
Оценка:
Здравствуйте, gato, Вы писали:

G>Доброго времени суток.

G>Сталкнулся с такой проблемой и попал в полный затуп:


G>
G>MSXML2::IXMLDOMDocument2Ptr pDOM2;
G>pDOM2.CreateInstance(__uuidof(FreeThreadedDOMDocument40));
G>pDOM2->async = VARIANT_FALSE;
G>pDOM2->resolveExternals = VARIANT_FALSE;
G>pDOM2->loadXML("какойто xsl");          // Тут MSXML долампады XML это или XSL, главное чтоб по стандарту все было =)
G>pDOM2->setProperty(_bstr_t("SelectionLanguage"), _variant_t(_bstr_t("XPath")));

G>BppNode pNodeTest = pDOM2->selectSingleNode("/xsl:stylesheet/xsl:template/xsl:value-of");
G>......
G>


G>При попытке выполнить selectSingleNode приложение падает, ни номера ошибки ни ее описания увидеть не могу.

G>Я так предполагаю, что нужно както перекастить DOM2 в DOM, но как? Или ошибка не в этом?

что-то типа

pDOM2->setProperty(_bstr_t("SelectedNamespaces"), _variant_t(_bstr_t("xsl="http://w3c.com/XSL"")));
Re: IXMLDOMDocument2Ptr не получается работать как с DOM
От: Angler Россия  
Дата: 07.07.08 09:55
Оценка:
Здравствуйте, gato, Вы писали:

G>При попытке выполнить selectSingleNode приложение падает, ни номера ошибки ни ее описания увидеть не могу.

G>Я так предполагаю, что нужно както перекастить DOM2 в DOM, но как? Или ошибка не в этом?

Для начала необходимо ловить _com_error и обрабатывать его. Вот пример с выводом на консоль:

try
{
  MSXML2::IXMLDOMDocument2Ptr pDOM2;
  //...
  BppNode pNodeTest = pDOM2->selectSingleNode("/xsl:stylesheet/xsl:template/xsl:value-of");
}
catch(const _com_error &e)
{
  std::wcerr << L"ErrorMessage: "e.ErrorMessage() << std::endl;
  if(!!e.Description())
    std::wcerr << L"Description: "<< static_cast<const wchar_t*>(e.Description()) << std::endl;
}



Дальше анализируй сообщение об ошибке...
Re[2]: IXMLDOMDocument2Ptr не получается работать как с DOM
От: gato Россия  
Дата: 11.10.08 16:31
Оценка:
Здравствуйте, Angler, Вы писали:

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


G>>При попытке выполнить selectSingleNode приложение падает, ни номера ошибки ни ее описания увидеть не могу.

G>>Я так предполагаю, что нужно както перекастить DOM2 в DOM, но как? Или ошибка не в этом?

A>Для начала необходимо ловить _com_error и обрабатывать его. Вот пример с выводом на консоль:


A>
A>try
A>{
A>  MSXML2::IXMLDOMDocument2Ptr pDOM2;
A>  //...
A>  BppNode pNodeTest = pDOM2->selectSingleNode("/xsl:stylesheet/xsl:template/xsl:value-of");
A>}
A>catch(const _com_error &e)
A>{
A>  std::wcerr << L"ErrorMessage: "e.ErrorMessage() << std::endl;
A>  if(!!e.Description())
A>    std::wcerr << L"Description: "<< static_cast<const wchar_t*>(e.Description()) << std::endl;
A>}
A>



A>Дальше анализируй сообщение об ошибке...


спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.