求一个支持XPATH的XML解析器 最好有源码 CMarkup跟tinyxml貌似都不支持XPATH(tinyxpath没用过),Xerces C++貌似也不支持?(非Xalan),难道只能用MSXML是不是只有4.0以上才支持XPATH啊?大家推荐下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 #import <msxml3.dll>MSXML2::IXMLDOMDocument2Ptr docPtr;//initif(FAILED(CoInitialize(NULL))){ //初始化失败}if(FAILED(docPtr.CreateInstance(__uuidof(MSXML2::DOMDocument30)))){ //初始化失败}docPtr->async = false; //同步docPtr->setProperty("ServerHTTPRequest",true); //HTTP请求 HRESULT lr = docPtr->load("http://www.aaa.com/a.xml");docPtr->setProperty("SelectionLanguage", "XPath"); //支持XPathMSXML2::IXMLDOMNodeListPtr pXMLDomNodeList = NULL;pXMLDomNodeList = docPtr->selectNodes("//crop"); //XPath表达式int count = pXMLDomNodeList->length;for(int i = 0 ; i < count ; i++){ MSXML2::IXMLDOMNodePtr pXMLDomNode = pXMLDomNodeList->item[i]; // pXMLDomNode->attributes->getNamedItem("id")->text);获取属性 MSXML2::IXMLDOMNodeListPtr pXMLDomChildNodes = pXMLDomNode->childNodes;//获取子结点 int clength = pXMLDomChildNodes->length; for(int j = 0 ; j < clength ; j++) { MSXML2::IXMLDOMNodePtr pXMLDomChildNode = pXMLDomChildNodes->item[j]; if(wcscmp(L"NodeName" , pXMLDomChildNode->GetnodeName()) == 0) { //系列操作 } else if(wcscmp(L"NodeName2" , pXMLDomChildNode->GetnodeName()) == 0) { //系列操作 } } CoUninitialize(); 那个For那里漏了一个结束括号楼主应该知道哈 按照一个例子写了代码 IConnectionPointContainer无法找到 各位大老们帮忙啊!!!动态连接库(dll) 请问怎样模拟http post报文发送2进制文件? 求教:CStdioFile::readstring出错 还是早上的问题,关于屏幕取色GetPixel 老版本的源程序在新版VC++6.0本中运行需要如何改动? <以下是老版源程序> 请教高手关于打印预览的问题! 为什么我的USB摄像头(WDM驱动的)无法修改制式? openGL画三维巷道 请问各位有没有类似OICQ的聊天工具的C程序或源码? 请问获取硬盘序列号代码中这些代码是什么意思? 跪求!
#import <msxml3.dll>
MSXML2::IXMLDOMDocument2Ptr docPtr;
//init
if(FAILED(CoInitialize(NULL)))
{
//初始化失败
}if(FAILED(docPtr.CreateInstance(__uuidof(MSXML2::DOMDocument30))))
{
//初始化失败
}
docPtr->async = false; //同步
docPtr->setProperty("ServerHTTPRequest",true); //HTTP请求
HRESULT lr = docPtr->load("http://www.aaa.com/a.xml");
docPtr->setProperty("SelectionLanguage", "XPath"); //支持XPathMSXML2::IXMLDOMNodeListPtr pXMLDomNodeList = NULL;
pXMLDomNodeList = docPtr->selectNodes("//crop"); //XPath表达式
int count = pXMLDomNodeList->length;for(int i = 0 ; i < count ; i++)
{
MSXML2::IXMLDOMNodePtr pXMLDomNode = pXMLDomNodeList->item[i];
// pXMLDomNode->attributes->getNamedItem("id")->text);获取属性
MSXML2::IXMLDOMNodeListPtr pXMLDomChildNodes = pXMLDomNode->childNodes;//获取子结点
int clength = pXMLDomChildNodes->length;
for(int j = 0 ; j < clength ; j++)
{
MSXML2::IXMLDOMNodePtr pXMLDomChildNode = pXMLDomChildNodes->item[j];
if(wcscmp(L"NodeName" , pXMLDomChildNode->GetnodeName()) == 0)
{
//系列操作
}
else if(wcscmp(L"NodeName2" , pXMLDomChildNode->GetnodeName()) == 0)
{
//系列操作
}
}
CoUninitialize();