本人菜鸟,刚接触vc,望各位帮忙,给一点思路本人要写这样一个函数:
BOOL GetSubNodes(XNode node, XNodeArray & arr)
struct XNode
{
CString strMakeup;//标志名
CString strField;//标志中间的部分
};
typedef CArray<XNode*, XNode*> XNodeArray;函数功能:获得节点中包含的子节点列表。
返回值: 子节点列表。
参数:
参数数据类型 备注
nodeXNode 节点结构体
arrXNodeArray 子节点列表例如:
XNode x;
x.strMakeup="FRAME”;
x.strField=”<BT>标题</BT><YJBT>一级标题</YJBT><ZW>正文</ZW><YJBT>一级标题</YJBT><ZW>正文</ZW><YJBT>一级标题</YJBT><QDFA>启动方案</QDFA>”;
XNodeArray arr;
GetSubNodes(x,arr) ;
则有输出结果
b.GetAt(0)->strField =”标题”;
b.GetAt(0)->strMakeup =”BT”;
b.GetAt(6)->strField =”启动方案”;
b.GetAt(6)->strMakeup =”QDFA”;
各位能不能给个思路,可能用到那些类??
谢了~~
BOOL GetSubNodes(XNode node, XNodeArray & arr)
struct XNode
{
CString strMakeup;//标志名
CString strField;//标志中间的部分
};
typedef CArray<XNode*, XNode*> XNodeArray;函数功能:获得节点中包含的子节点列表。
返回值: 子节点列表。
参数:
参数数据类型 备注
nodeXNode 节点结构体
arrXNodeArray 子节点列表例如:
XNode x;
x.strMakeup="FRAME”;
x.strField=”<BT>标题</BT><YJBT>一级标题</YJBT><ZW>正文</ZW><YJBT>一级标题</YJBT><ZW>正文</ZW><YJBT>一级标题</YJBT><QDFA>启动方案</QDFA>”;
XNodeArray arr;
GetSubNodes(x,arr) ;
则有输出结果
b.GetAt(0)->strField =”标题”;
b.GetAt(0)->strMakeup =”BT”;
b.GetAt(6)->strField =”启动方案”;
b.GetAt(6)->strMakeup =”QDFA”;
各位能不能给个思路,可能用到那些类??
谢了~~
解决方案 »
- 自定义消息问题,郁闷,帮帮忙
- MFC 如何通过地址打开图片
- 如何把网页绘制到D3D贴图里,并响应消息
- 帮忙看看这个按钮类,为个么会闪.
- 关于模板类pair的问题,请大虾帮助!!
- 今天看到一个功能非常强大的网络工具,大家没事来讨论一下
- 这个问题应该比较铺片的,不妨近来一看~
- 程序打开出错!
- 一个线程中有多个ClientSocket(原码:来了就给)注:有点问题大家也看看(在线一小时)
- mfc编程中当窗口关闭时OnOk、OnCancer、OnClose、OnDestory、DestoryWindow这些函数的执行顺序?
- Vc6.0安装问题,急盼解答,谢谢!!
- 在操作ole 文档对象的时候, 怎么样才能让 他在 activate 的时候, server端的 toolbar 不显示出来,
不太明白
我是要用vc来写
只能用MFC中的类
饿的天啊结构不是已经定义出来了吗,然后就可以用C++写了
不需要任何MFC的类如果你想用的话就要重新定义结构了
{
::CoInitialize(NULL);
this->m_pDomDocument2 = NULL;
HRESULT hr = m_pDomDocument2.CreateInstance(__uuidof(MSXML2::DOMDocument30));
//装载xml串
hr = this->m_pDomDocument2->loadXML(strXml.AllocSysString());
}CEmrXml::~CEmrXml()
{
if(this->m_pDomDocument2 != NULL)
{
this->m_pDomDocument2.Detach();
}}/*-----------------------------------
@function: 在xml文件中根据元素的编码取得text.
@para1: 元素编码
@para2: 对应的值
@return : 成功返回true, 失败false;
@example:
例如:<code>xxxx</code>, 调用 GetNodeText("code", strText);
结果就把"xxxx" 赋给csText;
---------------------------------------*/
BOOL CEmrXml::GetNodeText(CString csNode, CString &strText)
{
MSXML2::IXMLDOMNodePtr pNode = NULL;
csNode = "//"+csNode;
pNode = this->m_pDomDocument2->selectSingleNode(csNode.AllocSysString()); if(pNode!=NULL)
{
BSTR text = NULL;
HRESULT hr = pNode->get_text(&text);
if(SUCCEEDED(hr) && text!=NULL)
{
strText = static_cast<CString>(text);
::SysFreeString(text);
return TRUE;
}
}
return FALSE;
}