gpt4 book ai didi

c++ - msxml 删除 CDATA 部分中的换行符

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:24:36 27 4
gpt4 key购买 nike

我有一个带有 CDATA 部分的简单 XML,例如:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<config>
<input>
<![CDATA[
line
another line
and another
]]>
</input>
...
</config>

我有使用 MSXML 解析 CDATA 部分的当前代码。

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();

但是 abcd 都没有保留换行符XML。这是输出:

lineanother lineand another

当我创建文档时,我设置了保留空白标志:

m_pXmlDoc->put_preserveWhiteSpace(VARIANT_TRUE);

关于如何在考虑换行符的情况下获取 CDATA 部分的值,您有什么想法吗?

最佳答案

我不认为 CDATA 应该保留空格。它通常用于转义 < 或 > 等字符。 http://www.javacommerce.com/displaypage.jsp?name=whitespa.sql&id=18238这可能会有一些帮助。

关于c++ - msxml 删除 CDATA 部分中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/566389/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com