高分就教 xml问题!

glorysoft 2008-04-10 12:00:32
我用ms xml写xml文档,用ue打开就只有一行,怎么在里面加上回车换行符号啊?谢谢!
...全文
85 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
glorysoft 2008-04-11
  • 打赏
  • 举报
回复
在最前面加上<?xml version="1.0" encoding="UTF-8" ?>怎么加啊?
tancent 2008-04-11
  • 打赏
  • 举报
回复
也可以不用此函数。呵呵写错了
tancent 2008-04-11
  • 打赏
  • 举报
回复
上面掉了一个函数
void AppendChildToParent(IXMLDOMNode *pChild, IXMLDOMNode *pParent)
{
IXMLDOMNode *pNode=NULL;
pParent->appendChild(pChild, &pNode);
clean:
if (pNode) pNode->Release();
pNode=NULL;
}

也可以用此函数直接这样,不过用完最后都要释放的!
IXMLDOMDocument *pXMLDom=NULL;
IXMLDOMProcessingInstruction *pi=NULL;
IXMLDOMNode *pNode=NULL;
BSTR bstr = NULL;
BSTR bstr1 = NULL;
...

bstr = SysAllocString(L"xml");
bstr1 =SysAllocString(L"version='1.0' encoding='UTF-8'");
pXMLDom->createProcessingInstruction(bstr,bstr1, &pi);
pXMLDom->appendChild(pi,&pNode);
tancent 2008-04-11
  • 打赏
  • 举报
回复
IXMLDOMDocument *pXMLDom=NULL;
IXMLDOMProcessingInstruction *pi=NULL;
BSTR bstr = NULL;
BSTR bstr1 = NULL;
...

bstr = SysAllocString(L"xml");
bstr1 =SysAllocString(L"version='1.0' encoding='UTF-8'");
pXMLDom->createProcessingInstruction(bstr,bstr1, &pi);
AppendChildToParent(pi, pXMLDom);
tancent 2008-04-10
  • 打赏
  • 举报
回复
思路:在要换行的地方插入只有'\n'和'\t'的节点
BSTR bstr_wsn = SysAllocString(L"\n");
BSTR bstr_wsnt= SysAllocString(L"\n\t");
BSTR bstr_wsntt=SysAllocString(L"\n\t\t");

void AddWhiteSpaceToNode(IXMLDOMDocument* pDom,
BSTR bstrWs, //此参数是你要插入的回车或TAB又你自己定义,如上
IXMLDOMNode *pNode //pNode为要在之后插入TAB或回车的节点
)
{
HRESULT hr;
IXMLDOMText *pws=NULL;
IXMLDOMNode *pBuf=NULL;
HRCALL(pDom->createTextNode(bstrWs,&pws), " ");
HRCALL(pNode->appendChild(pws,&pBuf)," ");
clean:
if (pws) pws->Release();
pws=NULL;
if (pBuf) pBuf->Release();
pBuf=NULL;
}
ahuisafe 2008-04-10
  • 打赏
  • 举报
回复
appending "\n" or "\t" textnodes

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
xmlDoc.async = false;


// preserveWhiteSpace is useful when loading
// existing documents.
xmlDoc.preserveWhiteSpace = true;
xmlDoc.appendChild(xmlDoc.createElement("root"));
xmlDoc.documentElement.appendChild(
xmlDoc.createTextNode("\r\n\t"));
xmlDoc.documentElement.appendChild(
xmlDoc.createElement("child"));
xmlDoc.documentElement.appendChild(
xmlDoc.createTextNode("\r\n"));
xmlDoc.save("test.xml");
you can also use MXXMLWriter and set its indent property
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/6139a6fe-7d4c-449d-9e36-60b68be1de71.asp

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧