HRESULT hr = m_pDoc.CreateInstance("Microsoft.XmlDom");
if (FAILED(hr)){
return;
}
VARIANT_BOOL vb;
hr = m_pDoc->load(CComVariant(_T("Practice.xml")), &vb);
if (FAILED(hr) || VARIANT_FALSE == vb){
return;
}
#if 0 //document 添加注释节点
{
IXMLDOMCommentPtr pComment;
CComBSTR bstrData(_T("20140628"));
hr = m_pDoc->createComment(bstrData, &pComment);
if (FAILED(hr))
return;
CComBSTR bstrCommentText(_T("Work overtime"));
pComment->put_text(bstrCommentText);
//document 追加子节点
IXMLDOMNodePtr pOutNewNode;
hr = m_pDoc->appendChild(pComment, &pOutNewNode);
if (FAILED(hr))
return;
CComBSTR bstrName;
CComVariant cvValue;
pOutNewNode->get_nodeName(&bstrName);//#comment
pOutNewNode->get_nodeValue(&cvValue);//Work overtime
}
#endif
#if 0//元素节点添加注释节点
{
IXMLDOMNodeListPtr pAuthorList;
hr = m_pDoc->getElementsByTagName(CComBSTR("author"), &pAuthorList);
IXMLDOMNodePtr pAuthor;
hr = pAuthorList->get_item(1, &pAuthor);
VARIANT vLocation;
VariantInit(&vLocation);
vLocation.vt = VT_DISPATCH;
vLocation.pdispVal = pAuthor.GetInterfacePtr();
IXMLDOMNodePtr pParent;
hr = pAuthor->get_parentNode(&pParent);
IXMLDOMCommentPtr pComment2;
m_pDoc->createComment(CComBSTR("Insert Comment"), &pComment2);
IXMLDOMNodePtr pOutNewNode2;
hr = pParent->insertBefore(pComment2, vLocation, &pOutNewNode2);
}
#endif
#if 0 //selectSingleNode 应用
IXMLDOMNodePtr pNodeSelect;
hr = m_pDoc->selectSingleNode(CComBSTR("./catalog/book"), &pNodeSelect);
BSTR bstrName;
pNodeSelect->get_nodeName(&bstrName); //book
SysFreeString(bstrName);
pNodeSelect->get_text(&bstrName); //Gambardella, Matthew XML Developer's Guide Computer 44.95 2000-10-01 An in-depth look at creating applications with XML.
SysFreeString(bstrName);
IXMLDOMNodePtr pNodeSelect2, pNodeSelect3;
pNodeSelect->selectSingleNode(CComBSTR("./price"), &pNodeSelect2);
pNodeSelect2->get_nodeName(&bstrName); //price
SysFreeString(bstrName);
pNodeSelect2->get_text(&bstrName); //44.95
SysFreeString(bstrName);
pNodeSelect->selectSingleNode(CComBSTR("../book/description"), &pNodeSelect3);
pNodeSelect3->get_nodeName(&bstrName); //description
SysFreeString(bstrName);
pNodeSelect3->get_text(&bstrName); //An in-depth look at creating applications with XML.
SysFreeString(bstrName);
#endif
#if 0 //selectNodes 应用
IXMLDOMNodeListPtr pBookNodeList;
hr = m_pDoc->selectNodes(CComBSTR("./catalog/book"), &pBookNodeList);
long lLen;
pBookNodeList->get_length(&lLen); //4
IXMLDOMNodePtr pNode1;
pBookNodeList->get_item(1, &pNode1); //
BSTR bstrName;
pNode1->get_nodeName(&bstrName); //book
SysFreeString(bstrName);
pNode1->get_text(&bstrName); //Ralls, Kim Midnight Rain Fantasy 5.95 2000-12-16 A former architect battles corporate zombies,
//an evil sorceress, and her own childhood to become queen of the world.
SysFreeString(bstrName);
#endif
m_pDoc->save(CComVariant("D:\\Project_Test\\VS2013\\XmlPractice\\XmlPractice\\Practice_new.xml"));
m_pDoc.Release();
【XMLDOM】 IXMLDOMComment/insertBefore 应用
最新推荐文章于 2018-05-27 10:54:50 发布