下面一段是MSDN上的原始碼
https://msdn.microsoft.com/en-us/library/ms757021(v=vs.85).aspx
#include <stdio.h>
#include <tchar.h>
#import <msxml6.dll>
void dynamDOMsmart()
{
MSXML2::IXMLDOMDocumentPtr pXMLDom;
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);
// Create the root element (i.e., the documentElement).
MSXML2::IXMLDOMElementPtr pRoot = pXMLDom->createElement(L"root");
// Create a "created" attribute for the root element and
// assign the "using dom" character data as the attribute value.
MSXML2::IXMLDOMAttributePtr pa = pXMLDom->createAttribute(L"created");
pa->value = L"using dom";
pRoot->setAttributeNode(pa);
// Next, we will create and add more nodes to the root element
// we've just created.
// Create an element to hold text content.
MSXML2::IXMLDOMElementPtr pe = pXMLDom->createElement(L"node1");
// Add newline + tab for indentation.
pRoot->appendChild(pXMLDom->createTextNode(L"\n\t"));
pe->text = L"some character data";
pRoot->appendChild(pe);
// Create an element to hold a CDATA section.
pe = pXMLDom->createElement(L"node2");
// Add newline + tab for indentation.
pRoot->appendChild(pXMLDom->createTextNode(L"\n\t"));
pe->appendChild(pXMLDom->createCDATASection(L"<some mark-up text>"));
pRoot->appendChild(pe);
// Create an element to hold three empty subelements.
pe = pXMLDom->createElement(L"node3");
// Add newline +tab for indentation.
pRoot->appendChild(pXMLDom->createTextNode(L"\n\t"));
MSXML2::IXMLDOMDocumentFragmentPtr pdf = pXMLDom->createDocumentFragment();
pdf->appendChild(pXMLDom->createTextNode(L"\n\t\t"));
pdf->appendChild(pXMLDom->createElement(L"subNode1"));
pdf->appendChild(pXMLDom->createTextNode(L"\n\t\t"));
pdf->appendChild(pXMLDom->createElement(L"subNode2"));
pdf->appendChild(pXMLDom->createTextNode(L"\n\t\t"));
pdf->appendChild(pXMLDom->createElement(L"subNode3"));
pdf->appendChild(pXMLDom->createTextNode(L"\n\t"));
pe->appendChild(pdf);
pRoot->appendChild(pe);
pRoot->appendChild(pXMLDom->createTextNode(L"\n"));
// Add the root element to the DOM instance.
pXMLDom->appendChild(pRoot);
printf("Dynamically created DOM:\n%s\n", static_cast<PCSTR>(pXMLDom->xml));
hr = pXMLDom->save(L"dynaDOMsmart.xml");
if (SUCCEEDED(hr))
{
printf("DOM saved to dynaDOMsmart.xml\n");
}
else
{
printf("Failed to save DOM to dynaDomsmart.xml\n");
}
}
catch (_com_error errorObject)
{
printf("exception thrown, HRESULT: 0x%08x", errorObject.Error());
}
}
int _tmain(int argc, _TCHAR* argv[])
{
HRESULT hr = CoInitialize(NULL);
if (SUCCEEDED(hr))
{
dynamDOMsmart();
CoUninitialize();
}
return 0;
}
復制到VS2015下,結果像pRoot->appendChild之類的都有波浪線,提示沒有成員
編譯能通過,運行沒問題,但有活動(錯誤).不過在VS2008里倒沒問題.有什么辦法可以消除這個波浪線么,實在太難看了
uj5u.com熱心網友回復:
VS2013下沒有波浪線你可以試試
#import <msxml6.dll>
#include "Debug/msxml6.tlh"
如果是Release模式
#import <msxml6.dll>
#include "Release/msxml6.tlh"
uj5u.com熱心網友回復:
感謝回帖,試了一下,這下按F12可以找到定義了..不過依然有波浪線
uj5u.com熱心網友回復:
只是顯示問題而已,吐啊吐啊就習慣了。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/131313.html
標籤:HTML/XML
上一篇:MFC 對話框邊界問題
