高分就教 xml问题!

glorysoft 2008-04-10 12:00:32
我用ms xml写xml文档,用ue打开就只有一行,怎么在里面加上回车换行符号啊?谢谢!
...全文
52 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-04-10 12:00
社区公告

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