| Предыдущая тема :: Следующая тема | 
	
	
		| Автор | Сообщение | 
	
		| 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();
 }
 
 | 
 |  | 
	
		| Вернуться к началу |  | 
	
		|  | 
	
		|  |