梦想的彼岸花开 2023-05-10 16:43 采纳率: 77.8%
浏览 7
已结题

msxml3.dll 保存空格

公司的业务里我需要用到 MSXML3.dll 来对 XML 文件进行读写,打开一个 XML 进行读取,然后还要在另一个地方将这个 XML 保存下来,有的时候一个 XML 节点里的数据可能是 空格,但我发现好像只有空格的节点读取为空

MSXML2::IXMLDOMDocumentPtr pDOMDoc;
pDOMDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));
pDOMDoc->preserveWhiteSpace = true;   // false 也试过
...
_bstr_t bstr = pElem->GetfirstChild()->Gettext();  // XML 文件中对应的这里是空格,但是读取后结果不对

上面代码中 bstr 的结果通过 VS 查看,显示 m_wstr=0x0000027ba8537ed8L"" m_str=0x00000000000000 m_RefCount=1
等号后面是内存地址,可能不对,不重要,主要是 m_wstr 为空, m_str 直接是 NULL。
这个该怎么解决?这些空格是必要的

  • 写回答

2条回答 默认 最新

  • 梦想的彼岸花开 2023-05-11 15:22
    关注
    
    _bstr_t bstr = pElem->GetfirstChild()->GetnodeValue();
    

    这个方法不行,我现在用的是转义的方法来保存空格和‘&’之类的特殊字符,读取的时候判断后再转义一下保存到变量中,保存的时候再转义一次再保存,目前这个方式是可以用了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月27日
  • 已采纳回答 5月19日
  • 创建了问题 5月10日