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

    >> 本版讨论DOM, SAX, XPath等。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 DOM/SAX/XPath 』 → 用DOMSmart pointer进行VC++编程出现的问题!!!求救!! 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 3362 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 用DOMSmart pointer进行VC++编程出现的问题!!!求救!! 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     iqxtreme 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:59
      门派:XML.ORG.CN
      注册:2005/9/25

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给iqxtreme发送一个短消息 把iqxtreme加入好友 查看iqxtreme的个人资料 搜索iqxtreme在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看iqxtreme的博客楼主
    发贴心情 用DOMSmart pointer进行VC++编程出现的问题!!!求救!!

    以下是程序(就是Microsoft XML Core Services (MSXML) 4.0 - DOM Developer's Guide里面的例子):
    /***************************************************************/
    #include <stdio.h>
    #import <msxml4.dll>
    using namespace MSXML2;

    int main(int argc, char* argv[])
    {
       IXMLDOMDocument3Ptr pXMLDom;
       HRESULT hr;

       CoInitialize(NULL);

       hr = pXMLDom.CreateInstance(__uuidof(DOMDocument40));
       if (FAILED(hr))
       {
          printf("Failed to CreateInstance on an XML DOM");
          return NULL;
       }
       pXMLDom->preserveWhiteSpace = VARIANT_TRUE;
       
       // Create a processing instruction targeted for xml.
       IXMLDOMProcessingInstructionPtr pi;
       pi = pXMLDom->createProcessingInstruction("xml", "version='1.0'");
       if (pi != NULL) {
          pXMLDom->appendChild(pi);
          pi.Release();
       }

       // Create a processing instruction targeted for xml-stylesheet.
       pi = pXMLDom->createProcessingInstruction("xml-stylesheet",
                                    "type='text/xml' href='dom.xsl'");
       if (pi != NULL) {
          pXMLDom->appendChild(pi);
          pi.Release();
       }

       // Create a comment for the document.
       IXMLDOMCommentPtr pc;
       pc = pXMLDom->createComment("sample xml file created using XML DOM object.");
       if (pc != NULL) {
          pXMLDom->appendChild(pc);
          pc.Release();
       }

       // Create the root element (i.e., the documentElement).
       IXMLDOMElementPtr pe;
       pe = pXMLDom->createElement("root");

       // Create a "created" attribute for the root element and
       // assign the "using dom" character data as the attribute value.
       IXMLDOMAttributePtr pa;
       pa = pXMLDom->createAttribute("created");
       if (pa != NULL)
       {
          pa->value = "using dom";
          pe->setAttributeNode(pa);
         pa.Release();
       }

       // Add the root element to the DOM instance.
       pXMLDom->appendChild(pe);
       pe.Release();

       // Next, we will create and add more nodes to the root element
       // we've just created.


       // Create an element to hold text content.
       pe = pXMLDom->createElement("node1");
       if (pe != NULL)
       {
          // Add newline + tab for indentation.
          pXMLDom->documentElement->appendChild(pXMLDom->createTextNode("\n\t"));

          pe->text = "some character data";
          pXMLDom->documentElement->appendChild(pe);
         pe.Release();
       }

       // Create an element to hold a CDATA section.
       pe=pXMLDom->createElement("node2");
       if (pe != NULL)
       {
          // Add newline + tab for indentation.
          pXMLDom->documentElement->appendChild(pXMLDom->createTextNode("\n\t"));

          IXMLDOMCDATASectionPtr pcd;
          pcd = pXMLDom->createCDATASection("<some mark-up text>");
          if (pcd != NULL) {
            pe->appendChild(pcd);
            pcd.Release();
         }
          pXMLDom->documentElement->appendChild(pe);
         pe.Release();
       }
       
       // Create an element to hold three empty subelements.
       pe=pXMLDom->createElement("node3");
       if (pe != NULL)
       {
          // Add newline +tab for indentation.
          pXMLDom->documentElement->appendChild(pXMLDom->createTextNode("\n\t"));

          IXMLDOMDocumentFragmentPtr pdf;
          pdf = pXMLDom->createDocumentFragment();
          pdf->appendChild(pXMLDom->createTextNode("\n\t\t"));
          pdf->appendChild(pXMLDom->createElement("subNode1"));
          pdf->appendChild(pXMLDom->createTextNode("\n\t\t"));
          pdf->appendChild(pXMLDom->createElement("subNode2"));
          pdf->appendChild(pXMLDom->createTextNode("\n\t\t"));
          pdf->appendChild(pXMLDom->createElement("subNode3"));
          pdf->appendChild(pXMLDom->createTextNode("\n\t"));
          pe->appendChild(pdf);
         pdf.Release();
          pXMLDom->documentElement->appendChild(pe);
         pe.Release();
          pXMLDom->documentElement->appendChild(pXMLDom->createTextNode("\n"));

       }

       printf("Dynamically created DOM:\n%s\n",
          (LPCSTR)pXMLDom->xml);

       hr = pXMLDom->save("dynaDom.xml");
       if (FAILED(hr))
       {
          printf("Failed to save DOM to dynaDom.xml\n");
       }
       else
       {
          printf("DOM saved to dynamDom.xml\n");
       }

       if (pXMLDom) pXMLDom.Release();
       CoUninitialize();

       return 0;
    }
    /***************************************************************/
    编译时,提示许多错误,主要是:
      # IXMLDOMDocument3Ptr : 不明确符号
      # IXMLDOMProcessingInstructionPtr : 不明确符号
      # IXMLDOMCommentPtr : 不明确符号
      # IXMLDOMElementPtr: : 不明确符号
      ........等等等等这样的  “不明确符号” 的问题。

    我用的VS.NET 2003系统目录已经设置好了MSXML SDK 的 include 和 library

    建议大家也在自己机子上编译一下,如果通过了,请告诉我,你们是怎么做的,系统目录是如何设置的。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/28 13:11:00
     
     落花落叶落飞扬 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:21
      积分:133
      门派:XML.ORG.CN
      注册:2005/7/4

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给落花落叶落飞扬发送一个短消息 把落花落叶落飞扬加入好友 查看落花落叶落飞扬的个人资料 搜索落花落叶落飞扬在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看落花落叶落飞扬的博客2
    发贴心情 
    高手快出来啊,我也碰到找个问题了
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/10/9 10:37:00
     
     stevenbj 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:60
      门派:XML.ORG.CN
      注册:2005/9/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给stevenbj发送一个短消息 把stevenbj加入好友 查看stevenbj的个人资料 搜索stevenbj在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看stevenbj的博客3
    发贴心情 
    IXMLDOMDocument3Ptr ,
    IXMLDOMProcessingInstructionPtr ,
    IXMLDOMCommentPtr ,
    IXMLDOMElementPtr

    这些都是typedef得来的,可能你没有包含这个头文件吧。
    去掉Ptr,直接使用:
    IXMLDOMDocument * ,
    IXMLDOMProcessingInstruction * ,
    IXMLDOMComment *,
    IXMLDOMElement *
    来定义你的指针不就行了!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/10/10 11:47:00
     
     落花落叶落飞扬 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:21
      积分:133
      门派:XML.ORG.CN
      注册:2005/7/4

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给落花落叶落飞扬发送一个短消息 把落花落叶落飞扬加入好友 查看落花落叶落飞扬的个人资料 搜索落花落叶落飞扬在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看落花落叶落飞扬的博客4
    发贴心情 
    那我们的问题不是太菜了么?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/10/13 9:10:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 DOM/SAX/XPath 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/11/1 11:02:27

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

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