大环刀
2017-03-04 08:33
采纳率: 0%
浏览 1.8k

VC6.0 MFC 关于XML文件节点换行显示问题

源码如下:
CoInitialize(NULL);
// 创建文档
MSXML2::IXMLDOMDocument2Ptr pXMLDoc = NULL;
//创建DOMDocument对象
HRESULT hr = pXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument));
if (!SUCCEEDED(hr))
{
AfxMessageBox("==1");
return;
}
// Create the Processing Instruction
MSXML2::IXMLDOMProcessingInstructionPtr pXMLProc = NULL;
pXMLProc = pXMLDoc->createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");

_variant_t vNullVal;
vNullVal.vt = VT_NULL;
pXMLDoc->insertBefore(pXMLProc, vNullVal);
// 创建根结点
_variant_t varNodeType((short)MSXML2::NODE_ELEMENT);
MSXML2::IXMLDOMNodePtr pXMLNodeRoot= NULL;
pXMLNodeRoot = pXMLDoc->createNode(varNodeType, _T("Cases"), _T(""));
// 添加根结点
pXMLDoc->appendChild(pXMLNodeRoot);
// 创建并添加下级结点
MSXML2::IXMLDOMNodePtr pXMLNodeNode= NULL;
pXMLNodeNode = pXMLNodeRoot->appendChild(pXMLDoc->createElement(_T("Case")));
// 创建下级元素结点
MSXML2::IXMLDOMElementPtr pXMLEle = NULL;
pXMLEle = pXMLDoc->createElement(_T("CopyFile"));
// 创建并设置下级结点属性
MSXML2::IXMLDOMAttributePtr pXMLAttr = NULL;
pXMLAttr = pXMLDoc->createAttribute(_T("src"));
pXMLAttr->nodeTypedValue = "C:\test.txt";
pXMLEle->attributes->setNamedItem(pXMLAttr);
pXMLAttr = pXMLDoc->createAttribute(_T("dest"));
pXMLAttr->nodeTypedValue = "D:\Test.txt";
pXMLEle->attributes->setNamedItem(pXMLAttr);
// 添加元素结点
pXMLNodeNode->appendChild( pXMLEle);
MSXML2::IXMLDOMElementPtr pXMLEle1 = NULL;
pXMLEle1 = pXMLDoc->createElement(_T("DelFile"));
pXMLEle1->appendChild(pXMLDoc->createTextNode("C:\test.txt"));
// 添加元素结点
pXMLNodeNode->appendChild( pXMLEle1);

// 保存文档
pXMLDoc->save(_T("\Test.xml"));

问题:生成的Test.xml中的信息用 记事本 或者 UltraEdit 打开 是在一行显示的,如下:
图片说明

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • oyljerry 2017-03-04 08:50

    这个取决于XML类库的实现。可以用pugixml等类库。支持格式好

    评论
    解决 无用
    打赏 举报
  • threenewbee 2017-03-04 15:34

    换行不是必须的,如果非要换行,你可以用sprintf自己拼接格式化生成xml
    另外用IE打开,无论你xml是否有换行,都会被显示成格式化后的有换行的形式,因为ie自带了一个xml->html高亮的xslt

    评论
    解决 无用
    打赏 举报
  • 微wx笑 2017-03-05 01:34

    像楼上说的,要查看的时候好看可以使用带格式化功能的软件;
    你既然用程序生成XML,为什么又要手动去修改呢?
    简单的就是找个格式化工具格式化一下就可以了。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题