以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  [菜鸟求助]如何解析这个xml文档  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=43984)


--  作者:wangpu38
--  发布时间:3/16/2007 10:28:00 AM

--  [菜鸟求助]如何解析这个xml文档
文档如下:
<Book id="123">
  <Author>wp</Author>
  <Title>learn</Title>
  </Book>

我的程序(网上下载的)只能显示出id的“123”,请问怎么才能把Author的“wp”和Title的“learn”显示出来?源代码如下:
void CGenerateDlg::OnBnClickedLoad()
{
 // TODO: 在此添加控件通知处理程序代码
MSXML2::IXMLDOMDocumentPtr pDoc;
HRESULT hr;
hr=pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));
if(FAILED(hr))
{  
  MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!");
  return ;
}

//加载文件
pDoc->load("d:\\he.xml");

MSXML2::IXMLDOMNodePtr  pNode;

//在树中查找名为Book的节点,"//"表示在任意一层查找
pNode=pDoc->selectSingleNode("//Book");

MSXML2::DOMNodeType nodeType;

//得到节点类型
    pNode->get_nodeType(&nodeType);

//节点名称
CString strName;

strName=(char *)pNode->GetnodeName();



//节点属性,放在链表中
MSXML2::IXMLDOMNamedNodeMapPtr pAttrMap=NULL;
MSXML2::IXMLDOMNodePtr   pAttrItem;

pNode->get_attributes(&pAttrMap);

long count;
count=pAttrMap->get_length(&count);

pAttrMap->get_item(0,&pAttrItem);

//取得节点的值
  _variant_t variant;
pAttrItem->get_nodeValue(&variant);
m_strId=(char *)(_bstr_t)variant;
m_strTitle=variant.bstrVal;

UpdateData(FALSE);
}
请指教


--  作者:wangpu38
--  发布时间:3/16/2007 11:04:00 AM

--  
请各位高手帮帮忙吧,小弟跪谢了!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms