- UID
- 5126
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-5-16
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
BOOL AddChildNode(MSXML::IXMLDOMNode* pNode, LPCTSTR pszChildNodeName,
short nNodeType, MSXML::IXMLDOMNode** ppChild)是arx一个范例中增加节点的方法,但其中pszChildNodeName的第一个字母必须是非数字的字母,否则将出错返回,这是为什么?有何良策???谢谢。
BOOL AddChildNode(MSXML::IXMLDOMNode* pNode, LPCTSTR pszChildNodeName,
short nNodeType, MSXML::IXMLDOMNode** ppChild)
{
USES_CONVERSION;
try {
ASSERT(ppChild != NULL);
if (ppChild == NULL)
return FALSE;
*ppChild = NULL;
ASSERT(pNode != NULL && pszChildNodeName != NULL );
if (pNode == NULL || pszChildNodeName == NULL)
return FALSE;
CString strName(pszChildNodeName);
MSXML::IXMLDOMDocumentPtr pDoc;
MSXML::DOMNodeType type;
pNode->get_nodeType(&type);
if (type == MSXML::NODE_DOCUMENT)
pDoc = pNode;
else {
pNode->get_ownerDocument(&pDoc);
ASSERT( pDoc != NULL);
if (pDoc == NULL)
return FALSE;
}
_variant_t varType(nNodeType);
_bstr_t varName(strName);//pszChildNodeName);
MSXML::IXMLDOMNodePtr pNewNode = pDoc->createNode(varType, varName, _T(""));;
*ppChild = pNewNode.GetInterfacePtr();
// AddRef before returning
if (*ppChild != NULL)
(*ppChild)->AddRef();
pNode->appendChild(*ppChild);
} catch (_com_error &e) {
ASSERT(FALSE);
SetLastError(e.Error());
return FALSE;
} catch (...) {
TRACE(_T("Exception\n"));
return FALSE;
}
return TRUE;
} |
|