Здравствуйте Odi$$ey, Вы писали:
O$>Здравствуйте ak_alex, Вы писали:
O$>а можно по подробнее? "эта дрянь" не только убирает encoding="WINDOWS-1251", но корежит русские буквы при сохранении
После того, как сделал загрузку из строки через loadXML, смотришь, есть ли processing instruction, если есть то заменяешь его своим, ну что-то типа:
hr = doc->loadXML(bstrXML, &bSuccess);
if (SUCCEEDED(hr)&&bSuccess) {
CComPtr <IXMLDOMNode> instr;
hr = doc->get_firstChild(&instr);
if (SUCCEEDED(hr)) {
DOMNodeType tp;
instr->get_nodeType(&tp);
if (tp==NODE_PROCESSING_INSTRUCTION) {
CComPtr<IXMLDOMProcessingInstruction> pi = NULL;
hr = instr->QueryInterface(__uuidof(IXMLDOMProcessingInstruction), (void**)&pi);
if (SUCCEEDED(hr)) {
CComBSTR instType(L"xml");
CComBSTR instData(L"version=\"1.0\" encoding=\"WINDOWS-1251\"");
CComPtr<IXMLDOMProcessingInstruction> ptrInstr;
hr = doc->createProcessingInstruction(instType, instData,&ptrInstr);
CComPtr<IXMLDOMNode> oldInstr;
hr = doc->replaceChild(ptrInstr, instr, &oldInstr);
}
}
}