Здравствуйте Slayer, Вы писали:
O$>>Можно ли заставить MSXML парсер сохранять документы в структурированном виде? У меня шарошит весь файл в одну строку
S>Не раз уже такой вопрос возникал — и ни разу я ответа не видел . Нельзя вроде бы это сделать с помощью парсера... Ручками надобно чего-нить дописывать...
спасибо Илье, подсказал еще одну штуку —
http://groups.google.ca/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&threadm=38F675F48B36D4118E4D00508B5EBA3761554A%40cpmsftmsgv21.microsoft.com&rnum=1&prev=/groups%3Fq%3DMSXML%2Bsave%2BCR%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3D38F675F48B36D4118E4D00508B5EBA3761554A%2540cpmsftmsgv21.microsoft.com%26rnum%3D1
действительно то что дохтур прописал, на VB выглядит вообще смешно
'oXML - IXMLDOMDocument
'sXML - строка
sXML = oXML.XML
oXML.loadXML(Replace(sXML, "><", ">" & vbCrLf & "<"))
на C++ строк поболее, но смысл тот же, надругаться перед сохранением:
CComBSTR bstrXML( L"" );
hr = spDomDocument->get_xml( &bstrXML ); // CComPtr<IXMLDOMDocument> spDomDocument;
// вставляем переводы строки
CString sXml = W2A( bstrXML );
sXml.Replace( "><", ">\n<" );
bstrXML = sXml.GetBuffer( 0 );
// загружаем взад
hr = spDomDocument->loadXML( bstrXML, &bSuccess );
// сохраняем файлы
hr = spDomDocument->save( CComVariant( L"file.xml") );
получается чудненько структурированный документ со всеми отступами.