-1

我想在可视化 C++ 代码中获取 xml 字符串的节点值

我的 vc++ 代码是这样的

url=_T("http://www.xyz.com/val"); CString 结果 = g_pCAddonHandler->SendWebRequest(url, L"GET", L"", false); // 我向一个 web url 发送一个请求,它返回一个 xml 字符串,xml 的格式如下

回复

结果名称=“响应”numFound=“1”开始=“0”

文档

str name="id">497888/str

str name="lastName" 罗斯 /str

str name="name" 冬青 /str

/文档

/结果

/回复

注意:- 我没有使用 < & > 因为 stackoverflow 不允许这些。

请帮助获取所有节点。我在 VC++ 方面相对较新。

问候阿尼尔

4

3 回答 3

2

您可以通过标记字符串并获取所有节点来编写自己的 XML 解析器,或者使用一些现有的解析器,如TinyXML,阅读教程。

于 2012-07-18T09:45:32.863 回答
0

如果您发现 TinyXML 很困难,您可以随时尝试 http://pugixml.org/

于 2012-07-18T09:47:50.300 回答
0

试试这个

MSXML2::IXMLDOMDocumentPtr pXMLDom;
IXMLDOMNodeListPtr itemNodes = NULL;
CComBSTR bstrResp(szResponse);
::CoCreateInstance(MSXML2::CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER,
        MSXML2::IID_IXMLDOMDocument, (void**)&pXMLDom);
BOOL bRet = pXMLDom->loadXML((BSTR) bstrResp);


if(bRet)
{
 itemNodes = pXMLDom->selectNodes(_T( "/response/result/doc/str[@name='id']"));
 CString szId =  itemNodes->item[0]->text
 ....

}

有关详细信息,请检查此

http://msdn.microsoft.com/en-us/library/windows/desktop/ms756987%28v=vs.85%29.aspx

于 2012-07-19T05:30:35.827 回答