【问题标题】:VC++ create XML file but can not find method "appendChild()"VC++ 创建 XML 文件但找不到方法“appendChild()”
【发布时间】:2017-01-09 11:19:07
【问题描述】:

我正在使用 vs2015/vc++ 生成 XML 文档。我按照 Microsoft 文档中的示例进行操作。首先,我补充一下:

import "msxml6.dll"
using namespace MSXML2;*

然后在主循环中添加这样的代码:

HRESULT hr = pXMLDom.CreateInstance(__uuidof(MSXML2::DOMDocument60), NULL,     CLSCTX_INPROC_SERVER);

if (FAILED(hr))
{
    printf("Failed to instantiate an XML DOM.\n");
    return;
}

try
{
    pXMLDom->async = VARIANT_FALSE;
    pXMLDom->validateOnParse = VARIANT_FALSE;
    pXMLDom->resolveExternals = VARIANT_FALSE;
    pXMLDom->preserveWhiteSpace = VARIANT_TRUE;

    // Create a processing instruction targeted for xml.
    MSXML2::IXMLDOMProcessingInstructionPtr pi =       pXMLDom->createProcessingInstruction(L"xml", L"version='1.0'");    
    pXMLDom->appendChild(pi);

    // Create a comment for the document.
    MSXML2::IXMLDOMCommentPtr pc = pXMLDom->createComment(L"sample xml file created using XML DOM object.");
    pXMLDom->appendChild(pc);

...... }

但是 VS2015 总是告诉我类“MSXML2::IXMLDOMDocument”没有成员“appendChild”。我也无法编译它。我google了很多,但找不到答案。有谁知道原因?谢谢。

【问题讨论】:

  • 您没有包含 pXMLDom 的定义。转到它是什么(IXMLDOMDocument?),右键单击,转到定义并检查 appendChild 方法。它应该在那里,所以它可能是一个错字,但这应该会给你一个明确的答案。
  • MSXML2::IXMLDOMDocumentPtr pXMLDom;
  • @Mike 我用右键检查了定义,我得到了两个: IXMLDOMNodePtr appendChild ( struct IXMLDOMNode * newChild ); virtual HRESULT __stdcall raw_appendChild ( /*[in]*/ struct IXMLDOMNode * newChild, /*[out,retval]*/ struct IXMLDOMNode * * outNewChild ) = 0;
  • 我也得到这个错误,但我可以编译它。

标签: xml visual-c++ msxml


【解决方案1】:

你可以试试这样的

    static_cast<MSXML2::IXMLDOMNodePtr>(pXMLDom)->appendChild(pi);

我遇到了同样的问题并为我工作

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 2014-05-29
    相关资源
    最近更新 更多