コード例 #1
0
ファイル: AddItem.cpp プロジェクト: identity0815/os45
BOOL CAddItem::AddAttribute(MSXML2::IXMLDOMNodePtr item, LPCTSTR tstrAttributeName, LPCTSTR tstrAttributeText)
{
   BOOL bResult = FALSE;
   MSXML2::IXMLDOMNodePtr attribute = docPtr->createAttribute(tstrAttributeName); 
   if(attribute != NULL)
   {
      _variant_t varText(tstrAttributeText);
      hr = attribute->put_nodeValue(varText);
      if(SUCCEEDED(hr))
      {
         hr = item->attributes->setNamedItem(attribute);
         bResult = SUCCEEDED(hr);
      }
   }
   return bResult;
}
コード例 #2
0
//设置指定xpath的节点属性
BOOL CXmlBase::SetAttrValue(LPCTSTR lpszValue, LPCTSTR lpszAttrName, MSXML2::IXMLDOMNodePtr pNode)
{
	if (lpszValue == NULL 
		|| lpszAttrName == NULL 
		|| pNode == NULL) return FALSE;
	MSXML2::IXMLDOMElementPtr pElem = pNode;
	//lc,国际化乱码问题
// 	CComVariant varText(_bstr_t(lpszValue).GetBSTR());
// 	HRESULT hr = pElem->setAttribute(_bstr_t(lpszAttrName).GetBSTR(), varText);
	BSTR bstr = SysAllocString(_bstr_t(lpszValue).GetBSTR());   //modify memory leak
	CComVariant varText(bstr);
	BSTR bstrName =SysAllocString(_bstr_t(lpszAttrName).GetBSTR());
	HRESULT hr = pElem->setAttribute(bstrName, varText);
	SysFreeString(bstr);
	bstr = NULL;
	SysFreeString(bstrName);
	bstrName = NULL;
	if (FAILED(hr)) return FALSE;
	return TRUE;
}