Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / DOM парсит не так как надо / 2 сообщений из 2, страница 1 из 1
24.01.2006, 20:08
    #33500895
KALAKOM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DOM парсит не так как надо
Есть XML:

<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<email language=\"EN\">
<From></From>
<message><![CDATA["fffff\0\0fffffff"]]></message>
</email>

Вот код который парсит этот XML:

::CoInitialize(NULL);
MSXML::IXMLDOMDocumentPtr plDomDocument;
MSXML::IXMLDOMElementPtr pDocRoot;
plDomDocument.CreateInstance(_T("Msxml2.DOMDocument.4.0"));Document);

plDomDocument->loadXML(str); // _bstr_t str - содержит XML

pDocRoot = plDomDocument->documentElement;
MSXML::IXMLDOMNodePtr pChild = pDocRoot->firstChild;

pChild = pChild->nextSibling;

_bstr_t bstrMessage = pChild->text; // <Message>


В таком виде bstrMessage получает "fffff\0\0fffffff", но если в XML я забью вместо "fffff\0\0fffffff" "fffff\\0\0\0\0\0\0\0\0fffffff", то bstrMessage получает "fffff и дальше криказябли.

Что я делаю не так?

Спасибо.
...
Рейтинг: 0 / 0
27.01.2006, 13:30
    #33507393
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DOM парсит не так как надо
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
#import <msxml4.dll>

int main()
{
	//_bstr_t str = "<?xml version=\"1. 0 \" encoding=\"utf- 8 \" ?><email language=\"EN\"><From></From><message><![CDATA[\"fffff\\ 0 \\0fffffff\"]]></message></email>";
	_bstr_t str = "<?xml version=\"1. 0 \" encoding=\"utf- 8 \" ?><email language=\"EN\"><From></From><message><![CDATA[\"fffff\\\\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\0fffffff\"]]></message></email>";

	::CoInitialize(NULL);
	MSXML2::IXMLDOMDocumentPtr plDomDocument;
	MSXML2::IXMLDOMElementPtr pDocRoot;
	plDomDocument.CreateInstance("Msxml2.DOMDocument.4.0");

	plDomDocument->loadXML(str); // _bstr_t str - содержит XML


	pDocRoot = plDomDocument->documentElement;
	MSXML2::IXMLDOMNodePtr pChild = pDocRoot->firstChild;
	
	pChild = pChild->nextSibling;

	_bstr_t bstrMessage = pChild->text; // <Message>

	wprintf_s(L"%s\n", static_cast<wchar_t*>(bstrMessage));

	return  0 ;
}

Не забываем экранировать...
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / DOM парсит не так как надо / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]