本页主题: 用VC++如何生成Xml文档,可换行缩进,不产生xmlns="" 打印 | 加为IE收藏 | 复制链接 | 收藏主题 | 上一主题 | 下一主题

fwycome
级别: 入门弟子


精华: 0
发帖: 1
威望: 0 点
财富: 814 K币
贡献值: 0 点
注册时间:2007-05-09
最后登录:2007-05-09

 用VC++如何生成Xml文档,可换行缩进,不产生xmlns=""

void CTest11Doc::tmpCreatChild()
{
    HRESULT hr;
    IXMLDOMDocumentPtr xmlFile;
    hr = xmlFile.CreateInstance(__uuidof(DOMDocument40)); 
    if( FAILED(hr) )
    {
        OutputXmlErr();
        return;
    }

    MSXML2::IXMLDOMProcessingInstructionPtr pProcessingInstruction;           
    pProcessingInstruction = xmlFile->createProcessingInstruction(_bstr_t("xml"), _bstr_t("version="1.0" encoding = "utf-8""));
    xmlFile->appendChild((IXMLDOMNodePtr) pProcessingInstruction);

    IXMLDOMTextPtr ptrText = NULL;

    _bstr_t attrName = _T("");
    _variant_t attrVal = _T("");
    _bstr_t text;
    const _bstr_t bstrDefNs = _T("http://www.w3.org/2000/svg");
    _variant_t nodetype = long(NODE_ELEMENT);

//创建根节点
    _bstr_t name = _T("svg");
    IXMLDOMElementPtr pXmlRoot = xmlFile->createElement(name);
    if( pXmlRoot == NULL ) return;
    pXmlRoot = xmlFile->appendChild(pXmlRoot);

//给根节点添加属性

    attrName = _T("width");
    attrVal = float(500);
    pXmlRoot->setAttribute(attrName, attrVal);

    attrName = _T("height");
    attrVal = float(400);
    pXmlRoot->setAttribute(attrName, attrVal);

    attrName = _T("xmlns");
    pXmlRoot->setAttribute(attrName, bstrDefNs);
   
    attrName = _T("xmlns:xlink");
    attrVal = _T("http://www.w3.org/1999/xlink");
    pXmlRoot->setAttribute(attrName, attrVal);

//pXmlRoot 中添加 pNewText 节点
    text = _T("
");
    ptrText = xmlFile->createTextNode(text);
    pXmlRoot->appendChild(ptrText);

    name = _T("家禽");
    IXMLDOMCommentPtr pNewText = xmlFile->createComment(name);
    pXmlRoot->appendChild(pNewText);

//pXmlRoot 中添加 pNewElm节点
    text = _T("
");
    ptrText = xmlFile->createTextNode(text);
    pXmlRoot->appendChild(ptrText);

    name = _T("g");
    nodetype = long(NODE_ELEMENT);
    IXMLDOMElementPtr pNewElm = xmlFile->createNode(nodetype,name,bstrDefNs);
    pXmlRoot->appendChild(pNewElm);

//pNewElm 中添加 text节点
    name = _T("
");
    ptrText = xmlFile->createTextNode(name);
    pNewElm->appendChild(ptrText);

    name = _T("text");
    nodetype = long(NODE_ELEMENT);
    IXMLDOMElementPtr pNewGChld = xmlFile->createNode(nodetype,name,bstrDefNs);
    pNewElm->appendChild(pNewGChld);
    name = _T("
");
    ptrText = xmlFile->createTextNode(name);
    pNewElm->appendChild(ptrText);

    attrName = _T("x");
    attrVal = float(20);
    pNewGChld->setAttribute( attrName, attrVal );

    attrName = _T("y");
    attrVal = float(30);
    pNewGChld->setAttribute( attrName, attrVal );

    attrName = _T("fill");
    attrVal = _T("#00007f");
    pNewGChld->setAttribute( attrName, attrVal );

    attrName = _T("font-family");
    attrVal = _T("宋体");
    pNewGChld->setAttribute( attrName, attrVal );

    attrName = _T("font-size");
    attrVal = float(20);
    pNewGChld->setAttribute( attrName, attrVal );

    text = _T("
你好,鸭子!
");
    pNewGChld->put_text( text );

    text = _T("
");
    ptrText = xmlFile->createTextNode(text);
    pXmlRoot->appendChild(ptrText);

    _variant_t szPath = _T("F:\VC\信息子站\Doc\代码示例\SvgDra1.svg");
    hr = xmlFile->save(szPath);
    if( FAILED(hr) )
    {
        OutputXmlErr();
        return;
    }
}
顶端 Posted: 2007-05-09 11:23 | [楼 主]
伟明
级别: 勇者侠士


精华: 0
发帖: 85
威望: 84 点
财富: 883 K币
贡献值: 0 点
注册时间:2006-06-16
最后登录:2008-01-18

 

这  ~~~~~~~~~~这  ~~~~~~~~~~~看不怎么懂哦  。
顶端 Posted: 2007-05-11 19:33 | 1 楼
maxiang999
级别: 入门弟子


精华: 0
发帖: 13
威望: 0 点
财富: 814 K币
贡献值: 0 点
注册时间:2007-05-10
最后登录:2007-05-12

 

此帖售价 10 财富,已有 0 人购买
若发现会员采用欺骗的方法获取财富,请立刻举报,我们会对会员处以2-N倍的罚金,严重者封掉ID!
顶端 Posted: 2007-05-12 19:37 | 2 楼
天天429
级别: 禁止发言


精华: 0
发帖: 8
威望: 8 点
财富: 74 K币
贡献值: 0 点
注册时间:2008-08-29
最后登录:2008-09-10

 天长地久

楼主谈到完美私服里的友谊是的网络游戏里的友谊是不长久的,不过我在完美世界私服里的几个朋友还是比较满意
顶端 Posted: 2008-08-30 01:28 | 3 楼
帖子浏览记录 版块浏览记录
IECN社区 » XHTML/CSS/Dreamweaver

Time now is:11-20 21:59, Gzip disabled 京ICP备06069722号
Powered by PHPWind v6.3.2 Certificate Code © 2003-08 PHPWind.com Corporation