以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 XML源码及示例(仅原创和转载) 』  (http://bbs.xml.org.cn/list.asp?boardid=32)
----  在线等:新手使用msxml4解析XML字符串问题(急急急)!!!!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=32&rootid=&id=51838)


--  作者:liujiadegongzi
--  发布时间:8/26/2007 2:36:00 PM

--  在线等:新手使用msxml4解析XML字符串问题(急急急)!!!!
在线等:新手(VC)使用msxml4解析XML字符串问题(急急急)!!!!
在代码中调用下面函数后,
hr  = spSOAPClient->Invoke(dispidFn, IID_NULL, LOCALE_SYSTEM_DEFAULT,
    DISPATCH_METHOD, &params, &result, &excepInfo, &uArgErr);
  if (FAILED(hr))
  {
      return -1;
  }
在参数result中返回下面一个XML格式的字符串:
<?xml version="1.0" encoding="utf-8"?><root><iresult>0</iresult><strresultdesc></strresultdesc><aaa>bbb</aaa></root>
请较怎样解析取得各节点参数的值?

第一次接触XML,请具体点!
在线等,谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢!!!!!!


--  作者:liujiadegongzi
--  发布时间:8/27/2007 5:19:00 PM

--  
=======================================================
整整调试了1天,问题已基本解决,不知道这样是否存在问题,请大家多指教,谢谢谢谢!
代码:
  //方法二 解析XML
  MSXML2::IXMLDOMDocumentPtr pDoc;
  hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));
  if(!SUCCEEDED(hr))
  {  
   return -1;
  }
  pDoc->put_async(VARIANT_FALSE);
  pDoc->put_validateOnParse(VARIANT_FALSE);
  pDoc->put_resolveExternals(VARIANT_FALSE);
  pDoc->put_preserveWhiteSpace(VARIANT_TRUE);
  pDoc->loadXML((_bstr_t)sTemp);
  if(pDoc == NULL)
  {
   return -1;
  }

  MSXML2::IXMLDOMNodeListPtr pNodeList = NULL;
  MSXML2::IXMLDOMNodePtr  pNode = NULL;
  //取父节点
  pNode=pDoc->selectSingleNode("root");
  pNodeList =  pNode->GetchildNodes();
  if(pNodeList == NULL)
  {
   return -1;
  }
  long iTemp = pNodeList->Getlength();
  for (long i=0; i<iTemp; i++)
  {
   long f = pNodeList->Getlength();

   pNode = pNodeList->Getitem(i);
   sName = (char *)pNode->GetnodeName();
   _bstr_t sValue = pNode->get_text(&program);
   rlt += sName + ":" + program + "|";
                   }
得到结果:iresult:0|strresultdesc:aaa:bbb|


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms