Ejemplo n.º 1
0
IXMLDOMNodePtr GetAttributeNode(IXMLDOMNodePtr node, const _bstr_t& name)
{
	if (node == NULL)
		return NULL;

	IXMLDOMNamedNodeMapPtr attributes = node->Getattributes();
	if (attributes == NULL)
		return NULL;

	IXMLDOMNodePtr att = attributes->getNamedItem(name);
	return att;
}
Ejemplo n.º 2
0
void
ZXmlParser::GrabNodeInformation( IXMLDOMNodePtr pChild )
{
   if ( IsMSXML_Node( pChild ) == NODE_ELEMENT )
   {
      // It's a node

      // Tag Update
      m_Tag.Format( "<%s>", (const char *)( pChild->nodeName ) );
      m_Name = (const char *)( pChild->nodeName );

      // TextField no significant value
      m_TextField.Empty( );

      // Update Attribute List
      m_AttribNames.RemoveAll( );
      m_AttribValues.RemoveAll( );

      IXMLDOMNamedNodeMapPtr pAttribs = pChild->Getattributes( );
      if ( pAttribs )
      {
         long nAttriCnt = pAttribs->Getlength( );

         // Iterate over the attributes
         for( int i=0; i<nAttriCnt; ++i )
         {
            IXMLDOMNodePtr pAttrib = pAttribs->Getitem( i );
            if ( pAttrib )
            {
               CString cs = ( const char * ) pAttrib->GetnodeName( );
               m_AttribNames.Add( cs );

               _variant_t vVal = pAttrib->GetnodeValue (  );
               cs = ( const char * ) _bstr_t( vVal );
               m_AttribValues.Add(  cs );
            }
         }
      }
   }
   else
   if ( IsMSXML_Node( pChild ) == NODE_TEXT )
   {
      // Tag is #TEXT#
      m_Tag.Empty( );
      m_Tag = "<#TEXT#>";
      m_Name.Empty( );
      m_Name = "#TEXT#";

      // TextField Update
      m_TextField = (const char *)( pChild->text );

      // Update Attribute List have no means
      m_AttribNames.RemoveAll( );
      m_AttribValues.RemoveAll( );
   }
   else
   if ( IsMSXML_Node( pChild ) == NODE_CDATA_SECTION )
   {
      // Tag is #CDATA#
      m_Tag.Empty( );
      m_Tag = "<#CDATA#>";
      m_Name.Empty( );
      m_Name = "#CDATA#";

      // TextField Update
      m_TextField = (const char *)( pChild->text );

      // Update Attribute List have no means
      m_AttribNames.RemoveAll( );
      m_AttribValues.RemoveAll( );
   }
   else
   if ( IsMSXML_Node( pChild ) == NODE_PROCESSING_INSTRUCTION )
   {
      // Do nothing here
   }

   return;
}