MSXML2::IXMLDOMNode
MSXML2::IXMLDOMNode
MSXML2::IXMLDOMElement
初始化指针:
MSXML2::IXMLDOMDocument
MSXML2::IXMLDOMNodeList
MSXML2::IXMLDOMNamedNodeMap
MSXML2::IXMLDOMNode
MSXML2::IXMLDOMText
MSXML2::IXMLDOMElement
MSXML2::IXMLDOMProcessingInstruc
MSXML2::IXMLDOMComment
MSXML2::IXMLDOMParseError
已知数据:
BSTR
int
**)创建新文档
//
//
HRESULT
hr
a)添加子节点到父节点
pParent->appendChild(pChild,
b)创建节点
VARIANT
vtype.vt
V_I4(&vtype)
pDoc->createNode(vtype,
c)创建元素节点
pDoc->createElement(bstrName,pElement);
(pElement)->put_text(bstrText);
d)创建文本子节点,并添加到父节点中
pDoc->createTextNode(bstrText,&pText);
pParent->appendChild(pText,&
e)创建//
BSTR
BSTR
pDoc
SysFreeString(bstrTarget);
SysFreeString(bstrData);
f)创建注释节点
pDoc->createComment(bstrText,
g)元素节点属性值
得到属性值
VARIANT
pEle->getAttribute(bstrName,&v);
CString
设置属性值
CComVariant
pEle->setAttribute(bstrName,
h)节点属性值
VARIANT
CString
long
得到节点属性集
hr=pNod->get_attributes(&pNodeMap);
hr=pNodeMap->get_length(&mCount);
得到节点属性
hr=pNodeMap->getNamedItem(bstrName,&pNode);
pNodeMap->get_item(i,&pNode);
得到节点属性值
hr=pNode->get_nodevalue(&v);
str
删除节点属性
MSXML2::IXMLDOMNode
mNodeMape->removeNamedItem(bstrName,&moldNode);
if
i)节点
(1)得到节点、节点集
根据节点名称
pDoc->getElementsByTagName_r(bstrName,&pNodeList);
pNodeList->get_item(0,&pNode);
得到子节点集
hr=pNod->get_childNodes(&mNodeList);
long
MSXML2::IXMLDOMNode
mNodeList->get_length(&mCount);
hr=pNode->get_firstChild(&pNodeSub);
删除子节点(包含删除节点属性、子节点、当前节点)
删除当前子节点
pNodeList->get_item(i,&pNode);
pNod->removeChild(pNode,&moldNode);
moldNode->Release();
(2)根据节点得到节点名称
pNod->get_nodeName(&bstrName);
(3)根据节点得到节点值
VARIANT
hr=pNod->get_nodevalue(&v);
j)XML文件操作
加载
VARIANT_BOOL
VARIANT
(1)
pDoc->loadXML(bstrName,&status);
(2)
V_BSTR(&vFileName)
V_VT(&vFileName)
vResult
保存
BSTR
CComVariant
hr=pDoc->save(v);
BSTR
pDoc->get_xml(&bstr);
k)错误处理
BSTR
pDoc->get_parseError(&pObjError);
pObjError->get_reason(&bstr);
AfxMessageBox(_T("Failed