Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
rarelang
Зарегистрирован: 07.04.2004 Сообщения: 42
|
Добавлено: Ср Апр 07 2004 13:41 Заголовок сообщения: Как разобрать XML документ в Visual C++ |
|
|
Всем добрый день.
У меня возникла следующая проблема, мне нужно распарсить XML файл следующего типа:
<teg>data</teg>
<teg1>
<teg2>data1<teg2>
<teg2>data2</teg2>
</teg1>
и получить данные из этого XML документа, т.е. подскажите мне пожалуйста как в Visual C++ загрузить парсер и разобрать XML документ (приведите если можно небольшлй пример).
Заранее огромное спасибо. |
|
Вернуться к началу |
|
|
DigiWhite
Зарегистрирован: 03.03.2004 Сообщения: 12 Откуда: Санкт-Петербург
|
Добавлено: Ср Апр 07 2004 20:59 Заголовок сообщения: |
|
|
Ну вообще, по видимому, тебе надо использовать регулярные выражения (Regular Expression). Правда как работать в VC с ними не знаю. А насчет готового парсера, есть такой или нет, я не знаю. |
|
Вернуться к началу |
|
|
hydrolizer
Зарегистрирован: 01.12.2003 Сообщения: 58 Откуда: Москва
|
Добавлено: Чт Апр 08 2004 09:31 Заголовок сообщения: |
|
|
какие регулярные выражения, господь с вами
парсер MSXML3, информация - см. MSDN и сайт микрософта
вот навскидку пример из MSDN:
Код: |
The following C/C++ example displays the entire XML document from its root element.
#import "msxml3.dll"
using namespace MSXML2;
inline void TESTHR( HRESULT _hr )
{ if FAILED(_hr) throw(_hr); }
void XMLDOMElementSample()
{
try {
IXMLDOMDocumentPtr docPtr;
IXMLDOMElementPtr ElementPtr;
//init
TESTHR(CoInitialize(NULL));
TESTHR(docPtr.CreateInstance("msxml2.domdocument"));
// load a document
_variant_t varXml("C:\\book.xml");
_variant_t varOut((bool)TRUE);
varOut = docPtr->load(varXml);
if ((bool)varOut == FALSE)
throw(0);
ElementPtr = docPtr->documentElement;
MessageBox(NULL, ElementPtr->xml, _T("Document from its root"), MB_OK);
} catch(...)
{
MessageBox(NULL, _T("Exception occurred"), _T("Error"), MB_OK);
}
CoUninitialize();
}
|
|
|
Вернуться к началу |
|
|
|