誰知道C++訪問XML的書啊?告知一二。想學XML可就找不到書。有知道的告知書名也行。
或學習C++訪問XML的途徑也可。謝了。
uj5u.com熱心網友回復:
tinyxmluj5u.com熱心網友回復:
你指的是決議XML檔案嗎?DOM MSXML, CMarkupuj5u.com熱心網友回復:
讀寫XML不用去專門看書吧,百度試著搜下:pugixml教程uj5u.com熱心網友回復:
還是沒有,有沒有知道的?uj5u.com熱心網友回復:
QT也可以的。uj5u.com熱心網友回復:
我不想這么復雜,簡單點吧
uj5u.com熱心網友回復:
repidxml 這還需要書啊,隨便一搜就來了uj5u.com熱心網友回復:
哪里有資源啊?貼出來看看uj5u.com熱心網友回復:
以前自己寫的讀寫XML配置檔的:CString ::ReadSingleNodeXml(CString sec,CString key)
{
CoInitialize(NULL);
BSTR strv=L"";
CString strdir=_T("");
CString selnodecstr=_T("");
CComPtr<IXMLDOMDocument> spXmldoc;
HRESULT hr = spXmldoc.CoCreateInstance(L"MSXML2.DOMDocument.6.0");
if(SUCCEEDED(hr))
{
VARIANT_BOOL isSuccessFul;
GetAppPath(strdir);
strdir=strdir+_T("\\Program\\aConfig.xml");
CComVariant varXmlFile(strdir);
spXmldoc->put_async(VARIANT_FALSE);
HRESULT hr= spXmldoc->load(varXmlFile, &isSuccessFul);
if(isSuccessFul==VARIANT_TRUE)
{
CComBSTR bstrXml;
CComPtr<IXMLDOMElement> spRoot=NULL;
hr = spXmldoc->get_documentElement(&spRoot);
spRoot->get_xml(&bstrXml);
CComPtr<IXMLDOMNode> spTheNode=NULL;
selnodecstr=_T("/aConfig/")+sec+_T("/")+key;
spRoot->selectSingleNode(::SysAllocString(selnodecstr), &spTheNode);
if (spTheNode!=NULL)//節點未找到
{
spTheNode->get_text(&strv);
}
spRoot.Release();
bstrXml.Empty();
}
varXmlFile.ClearToZero();
}
spXmldoc.Release();
CoUninitialize();
return (CString)strv;
}
int ::WriteSingleNodeXml(CString sec,CString key,CString val)
{
CoInitialize(NULL);
int result=1;
CString strdir=_T("");
CString selnodecstr=_T("");
CComPtr<IXMLDOMDocument> spXmldoc;
HRESULT hr = spXmldoc.CoCreateInstance(L"MSXML2.DOMDocument.6.0");
if(SUCCEEDED(hr))
{
VARIANT_BOOL isSuccessFul;
GetAppPath(strdir);
strdir=strdir+_T("\\Program\\aConfig.xml");
CComVariant varXmlFile(strdir);
spXmldoc->put_async(VARIANT_FALSE);
HRESULT hr= spXmldoc->load(varXmlFile, &isSuccessFul);
if(isSuccessFul==VARIANT_TRUE)
{
CComBSTR bstrXml;
CComPtr<IXMLDOMElement> spRoot=NULL;
CComPtr<IXMLDOMElement> spTheElem=NULL;
CComPtr<IXMLDOMNode> spNewNode=NULL;
CComPtr<IXMLDOMNode> spTheNode=NULL;
hr = spXmldoc->get_documentElement(&spRoot);
spRoot->get_xml(&bstrXml);
selnodecstr=_T("/aConfig/")+sec+_T("/")+key;
spRoot->selectSingleNode(::SysAllocString(selnodecstr), &spTheNode);
if (spTheNode!=NULL)//節點未找到
{
spTheNode->put_text(::SysAllocString(val));
spXmldoc->save(varXmlFile); //保存xml。
result=0;
}
else
{
spXmldoc->createElement(::SysAllocString(key),&spTheElem);
spTheElem->put_text(::SysAllocString(val));
spRoot->selectSingleNode(::SysAllocString(_T("/SaejongConfig/")+sec),&spTheNode);
spTheNode->appendChild(spTheElem,&spNewNode);
spXmldoc->save(varXmlFile); //保存xml。
result=0;
}
spRoot.Release();
bstrXml.Empty();
}
varXmlFile.ClearToZero();
}
spXmldoc.Release();
CoUninitialize();
return result;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/28688.html
標籤:HTML/XML
上一篇:簡單的資料庫查詢問題
下一篇:請教 C# Json 使用
