新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   >>中国XML论坛<<     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → 这两天学习xml成果,希望能给帮助你解决问题  vc操作xml 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 2503 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 这两天学习xml成果,希望能给帮助你解决问题  vc操作xml 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     wdllove 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:28
      积分:116
      门派:XML.ORG.CN
      注册:2004/4/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给wdllove发送一个短消息 把wdllove加入好友 查看wdllove的个人资料 搜索wdllove在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看wdllove的博客楼主
    发贴心情 这两天学习xml成果,希望能给帮助你解决问题  vc操作xml


    void QueryXml()
    {
       IXMLDOMDocumentPtr pXMLDom;
       HRESULT hr;

       CoInitialize(NULL);

       hr = pXMLDom.CreateInstance(__uuidof(DOMDocument40));
       if (FAILED(hr))
       {
          printf("Failed to instantiate DOMDocument40 class\n");
          return ;
       }
       //load
       pXMLDom->async = VARIANT_FALSE;
       if ( pXMLDom->load("c:\\he.xml") != VARIANT_TRUE)
       {
          printf("Failed load xml data from file.\n%s\n",
             (LPCSTR)pXMLDom->parseError->Getreason());
          return ;
       }

       IXMLDOMElementPtr  pNode = (IXMLDOMElementPtr)pXMLDom->selectSingleNode("//china/*");
       if (pNode == NULL)
       {
          printf("Invalid node fetched.\n%s\n",
             (LPCSTR)pXMLDom->parseError->Getreason());
       }
       else
       {
          /*printf("Result from selectSingleNode:\nNode, <%s>:\n\t%s\n\n",
             (LPCSTR)pNode->nodeName, (LPCSTR)pNode->xml);
       */
       printf("解释XML文件\n");
       }
       
       IXMLDOMNodeListPtr pnl = pXMLDom->selectNodes("//china/*");
       printf("Results from selectNodes:\n");
       for (int i=0; i<pnl->length; i++)
       {
         pNode = pnl->item[i];
      
      char cityName[400];memset(cityName,0,400);
      VARIANT varVal;    
      pNode->get_nodeTypedValue(&varVal); 
      strcpy(cityName,(char*)(_bstr_t)varVal);
      printf(cityName);
      printf(":详细情况\n");

      IXMLDOMNamedNodeMapPtr pAttrs = NULL;     
      IXMLDOMNodePtr pAttrItem;    
      pNode->get_attributes(&pAttrs);    
      long nCount ;    
      pAttrs->get_length(&nCount);    
      for(int i = 0 ; i < nCount ; i++)     
        {                      
       pAttrs->get_item(i,&pAttrItem); 

       char tmpName[400];memset(tmpName,0,400);
       strcpy(tmpName,(char*)(_bstr_t)pAttrItem->nodeName);
         printf(tmpName);
       printf(":");

       char tmpValue[400];
       memset(tmpValue,0,400);
       strcpy(tmpValue,(char*)(_bstr_t)pAttrItem->nodeTypedValue );
         printf(tmpValue);
       printf("\n");
      }  

      /*
          printf("Node (%d), <%s>:\n\t%s\n",
             i, (LPCSTR)pNode->nodeName, (LPCSTR)pnl->item[i]->xml);
       */
       }

       pXMLDom.Release();
       pNode.Release();
       pnl.Release();
       CoUninitialize();

    }

    void NewXml()
    {
     CoInitialize(NULL);
     IXMLDOMDocumentPtr pDoc;
     IXMLDOMElementPtr xmlRoot;
     //创建DOMDOCUMENT对象
     HRESULT hr=pDoc.CreateInstance(_uuidof(DOMDocument40));
     if(!SUCCEEDED(hr))  
     {                  
      printf("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!");
      return ;  
     }
     pDoc->raw_createElement((_bstr_t)(char*)"country", &xmlRoot);
     pDoc->raw_appendChild(xmlRoot, NULL);
     
     IXMLDOMElementPtr  childChina;
     
     pDoc->raw_createElement((_bstr_t)(char*)"china", &childChina);

     IXMLDOMElementPtr  childNode ;

     pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode);
     childNode->Puttext("沈阳");//节点值 
     childNode->setAttribute("population","8,000,000");//属性名,属性值 
     childNode->setAttribute("area","10000"); 
     childChina->appendChild(childNode);
      
     pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode);
     childNode->Puttext("长春");//节点值 
     childNode->setAttribute("population","8,000,000");//属性名,属性值 
     childNode->setAttribute("area","10000"); 
     childChina->appendChild(childNode);
     xmlRoot->appendChild(childChina);

     pDoc->save("c:\\he.xml");
     
     pDoc.Release();
     xmlRoot.Release();
     childChina.Release();
     childNode.Release();

     CoUninitialize();
    }

    还在完善中,自己也很东西不会,也希望得到你们的帮助


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/13 16:31:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/8/16 11:50:17

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    62.500ms