У меня есть простой XML с секцией CDATA как:MSXML удаляет разрывы строк в секции CDATA
<?xml version="1.0" encoding="ISO-8859-1" ?>
<config>
<input>
<![CDATA[
line
another line
and another
]]>
</input>
...
</config>
И у меня есть текущий код для разбора раздела CDATA с использованием MSXML.
for (int i = 0, count = pChildNodes->Getlength(); i < count; ++i) {
IXMLDOMNodePtr pNode = pChildNodes->Getitem(i);
if (pNode->GetnodeType() != NODE_COMMENT && pNode->GetnodeType() != NODE_TEXT) {
if (pNode->GetnodeType() == NODE_CDATA_SECTION) {
IXMLDOMCDATASectionPtr pCData = pNode;
_bstr_t a = pCData->Getdata();
_variant_t b = pCData->GetnodeValue();
_bstr_t c = pCData->Gettext();
_bstr_t d = pCData->Getxml();
Но ни один из a
, b
, c
или d
держит разрывы строк, которые находятся в XML. И это выход:
lineanother lineand another
Когда я создаю документ, который я установить сохранение белого пространства флага:
m_pXmlDoc->put_preserveWhiteSpace(VARIANT_TRUE);
У вас есть какие-либо идеи о том, как я могу получить значение раздела CDATA с учетом линия ломается?