#import "msxml6.tlb"
MSXML2::IXMLDOMDocumentPtr spDoc;
HRESULT hr = spDoc.CreateInstance(__uuidof(MSXML2::DOMDocument));
ATLASSERT(SUCCEEDED(hr));
CComBSTR bsDataPath;
VARIANT_BOOL bRet = spDoc->load(bsDataPath + _T("\\Path.xml"));
if (bRet != VARIANT_FALSE)
{
MSXML2::IXMLDOMNodeListPtr spList = spDoc->documentElement->selectNodes(_T("Lay1/Att"));
for (int i = 0; i < spList->length; ++i)
{
MSXML2::IXMLDOMElementPtr spElem = spList->item[i];
CString sAttName = spElem->getAttribute(_T("AttName"));
CString sAttDef = spElem->getAttribute(_T("AttDef"));
}
}
MSXML2::IXMLDOMDocumentPtr spDoc;
HRESULT hr = spDoc.CreateInstance(__uuidof(MSXML2::DOMDocument));
ATLASSERT(spDoc);
MSXML2::IXMLDOMElementPtr spRoot = spDoc->createElement(_T("Root"));
spDoc->appendChild(spRoot);
MSXML2::IXMLDOMElementPtr spElemFirst = spDoc->createElement(_T("Lay1"));
spRoot->appendChild(spElemFirst);
for (int i = 0; i < m_lMaxRow; i++)
{
CString sAttName;
CString sAttDef;
MSXML2::IXMLDOMElementPtr spElem = spDoc->createElement(_T("Att"));
spElem->setAttribute(_T("AttName"), (_bstr_t)sAttName);
spElem->setAttribute(_T("AttDef"), (_bstr_t)sAttDef);
spElemFirst->appendChild(spElem);
}
CComBSTR bsDataPath;
spDoc->save(bsDataPath + _T("\\Path.xml"));
try
{
...
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}
`
``