工作中遇到一个c++ xml问题。关于查询节点元素值的问题。急需高手解答

xiyuxi2001 2003-08-12 08:43:12
我想用xml做配置文件。用c++读取解析。用的是msxml4 接口 xml内容如下
<profile>
<parameter>
<name>maxlinks</name>
<vlaue>20</vlaue>
</parameter>
</profile>
功能需求:用c++获取 name的值maxlinks 和value的值 20
问题: 我得到啦节点标签的内容如 name 和value 单怎么得到 值 maxlinks,20啊。希望大侠帮忙
代码片断如下
变量 int i,k;
string name, value;
IXMLDOMDocument2Ptr pXMLDom;
IXMLDOMNodeListPtr pnl;
IXMLDOMNodePtr pNode;

// Query a node-set.
pnl = pXMLDom->selectNodes("//parameter[1]/*");
for (i=0; i<pnl->length; i++)
{
pNode = pnl->item[i];
//标签得到啦,如第一个name.
cout<<"nodname= ["<<(LPCSTR)pNode->nodeName<<"] ";
//怎么得到值 maxlinks????在这里,我不会
}
输出:

...全文
48 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
npucwj 2004-03-01
  • 打赏
  • 举报
回复
假设你获得name节点的指针pNode,
if(pNode->GetnodeType()==NODE_TEXT)
{
name=(LPCSTR)(pNode->Gettext());
}
同理对于value节点:
if(pNode->GetnodeType()==NODE_TEXT)
{
value=(LPCSTR)(pNode->Gettext());
}
sharkhuang 2004-03-01
  • 打赏
  • 举报
回复
一个一个的读吧
skqgd 2004-03-01
  • 打赏
  • 举报
回复
std::string strMsg;
BSTR bMsg;

hr = pNode->get_text(&bMsg);
if (SUCCEEDED(hr)){
strMsg = _bstr_t(bMsg);
::SysFreeString(bMsg);
}
grooving 2004-01-09
  • 打赏
  • 举报
回复
msxml4 SDK里有好多例子
stargate 2004-01-08
  • 打赏
  • 举报
回复
pNode ->text

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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