• 大小: 2.8MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-13
  • 语言: C/C++
  • 标签: msxml  vc6  

资源简介

msxml的示例教程,增加删除节点,获取节点值、名称,获取属性名称属性值,增加删除属性等

资源截图

代码片段和文件信息

// MSxml.cpp : Defines the entry point for the console application.
//


#include 
#include 
//#include  
#include “msxml.h“
#import l.dll> 


enum tagDOMNodeType
{
    NODE_INVALID = 0
    NODE_ELEMENT = 1
    NODE_ATTRIBUTE = 2
    NODE_TEXT = 3
    NODE_CDATA_SECTION = 4
    NODE_ENTITY_REFERENCE = 5
    NODE_ENTITY = 6
    NODE_PROCESSING_INSTRUCTION = 7
    NODE_COMMENT = 8
    NODE_DOCUMENT = 9
    NODE_DOCUMENT_TYPE = 10
    NODE_DOCUMENT_FRAGMENT = 11
    NODE_NOTATION = 12
};


static MSxml::IxmlDOMDocumentPtr pxmlDoc;
static MSxml::IxmlDOMElementPtr pRootElement;
static MSxml::IxmlDOMNodePtr pRootNode;



void xml_Node_Browse(MSxml::IxmlDOMNodePtr &pNode)
{
    MSxml::IxmlDOMNodeListPtr pNodeList = NULL;
    MSxml::IxmlDOMNodePtr pSubNode = NULL;
    MSxml::DOMNodeType type;
            
    long SubNodeNum = 0 i = 0;
    _bstr_t bstrName bstrText;


    try
    {
        pNode->get_childNodes(&pNodeList);
        //获得子节点的个数
        pNodeList->get_length(&SubNodeNum);
        
        bstrName = pNode->GetnodeName();
        bstrText = pNode->Gettext();
   
        pNode->get_nodeType(&type);
        printf (“%s %s 节点类型%d\n“ (char *)bstrName (char *)bstrText type);
        printf (“子节点个数:%d\n“ SubNodeNum);
        
        if(SubNodeNum > 0)
        {
            for(i = 0; i < SubNodeNum; i++)
            {
                pNodeList->get_item(i &pSubNode);
                xml_Node_Browse(pSubNode);
            }
        }
        else
        {
            assert(1);
        }
        if(pNodeList)
        pNodeList.Release();
        if(pSubNode)
        pSubNode.Release();
    }
    catch(_com_error errorobject)
    {
        printf(“Exception HRESULT = 0x%08x“ errorobject.Error());
    }
}

int xml_Read_Val(MSxml::IxmlDOMNodePtr &pNode)
{
    _bstr_t NodeVal;
    try
    {
        NodeVal = pNode->Gettext();
        printf (“节点值%s\n“ (char *)NodeVal);
    }
    catch(_com_error errorobject)
    {
        printf(“Exception HRESULT = 0x%08x“ errorobject.Error());
        return -1;
    }
    
    return 0;
}


int xml_Read_Attr(MSxml::IxmlDOMNodePtr &pNode)
{
    MSxml::IxmlDOMNamedNodeMapPtr pAttrs = NULL;
    MSxml::IxmlDOMNodePtr pAttrNode = NULL;
    _bstr_t AttrName AttrText;
    long RootAttrNum = 0 j = 0;
    try
    {
        pNode->get_attributes(&pAttrs);
        if (pAttrs == NULL)
        {
            return -1;
        }
        //属性个数
        pAttrs->get_length(&RootAttrNum);
        printf (“节点属性个数:%d\n“ RootAttrNum);
        
        for(j = 0; j < RootAttrNum; j++)
        {
            pAttrs->get_item(j &pAttrNode);
            AttrName = pAttrNode->GetnodeName();
            AttrText = pAttrNode->Gettext();
            printf (“属性名%s属性值%s\n“ (char *)AttrName (char *)AttrText);
        }
        if (pAttrNode)
            pAtt

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        458  2014-07-12 18:34  MSxml\Debug\a.xml

     文件      54593  2008-04-14 20:00  MSxml\Debug\msxml.tlh

     文件      54084  2008-04-14 20:00  MSxml\Debug\msxml.tli

     文件    2647040  2014-07-12 18:29  MSxml\Debug\MSxmltest.bsc

     文件     221244  2014-07-12 18:29  MSxml\Debug\MSxmltest.exe

     文件    1281424  2014-07-12 18:29  MSxml\Debug\MSxmltest.ilk

     文件     188481  2014-07-12 18:29  MSxml\Debug\MSxmltest.obj

     文件    7814508  2014-07-12 12:50  MSxml\Debug\MSxmltest.pch

     文件    1156096  2014-07-12 18:29  MSxml\Debug\MSxmltest.pdb

     文件          0  2014-07-12 18:29  MSxml\Debug\MSxmltest.sbr

     文件        397  2014-07-12 18:34  MSxml\Debug\test.xml

     文件     181248  2014-07-12 18:34  MSxml\Debug\vc60.idb

     文件     225280  2014-07-12 18:29  MSxml\Debug\vc60.pdb

     文件      54533  2008-04-14 20:00  MSxml\msxml.tlh

     文件      54054  2008-04-14 20:00  MSxml\msxml.tli

     文件      13360  2014-07-12 18:29  MSxml\MSxmltest.cpp

     文件       3441  2014-07-11 18:49  MSxml\MSxmltest.dsp

     文件        541  2014-07-11 16:51  MSxml\MSxmltest.dsw

     文件     107520  2014-07-12 18:34  MSxml\MSxmltest.ncb

     文件      54784  2014-07-12 18:34  MSxml\MSxmltest.opt

     文件        252  2014-07-12 18:34  MSxml\MSxmltest.plg

     目录          0  2014-07-12 18:29  MSxml\Debug

     目录          0  2014-07-12 18:34  MSxml

----------- ---------  ---------- -----  ----

             14113338                    23


评论

共有 条评论