求一本关于C++访问XML的书?

liujingga33 2019-10-08 08:32:07
谁知道C++访问XML的书啊?告知一二。想学XML可就找不到书。有知道的告知书名也行。
或学习C++访问XML的途径也可。谢了。
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
i-Taiko 2019-11-20
  • 打赏
  • 举报
回复
以前自己写的读写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;
}
liujingga33 2019-10-13
  • 打赏
  • 举报
回复
哪里有资源啊?贴出来看看
xengine-qyt 2019-10-12
  • 打赏
  • 举报
回复
repidxml 这还需要书啊,随便一搜就来了
zyrr159487 2019-10-10
  • 打赏
  • 举报
回复
QT也可以的。
liujingga33 2019-10-10
  • 打赏
  • 举报
回复
引用 5 楼 zyrr159487 的回复:
QT也可以的。


我不想这么复杂,简单点吧
liujingga33 2019-10-09
  • 打赏
  • 举报
回复
还是没有,有没有知道的?
lx624909677 2019-10-08
  • 打赏
  • 举报
回复
读写XML不用去专门看书吧,百度试着搜下:pugixml教程
Eleven 2019-10-08
  • 打赏
  • 举报
回复
你指的是解析XML文件吗?DOM MSXML, CMarkup
走好每一步 2019-10-08
  • 打赏
  • 举报
回复
tinyxml

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧