🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.text.xml
Article #10397

"Caster" une interface "node" en interface "element" dans le DOM microsoft?

#10397
From: Jean-Philippe BRUNET
Date: Sun, 15 Oct 2000 06:25
56 lines
3187 bytes
Je travaille en C++ en environnement Microsoft.
Quelqu'un sait-il comment on peut r�cup�rer une interface
MSXML2::IXMLDOMElement � partir d'une interface MSXML2::IXMLDOMNode bien sur
quand le "node" est un "�l�ment".
La doc dit que IXMLDOMElement  h�rite deIXMLDOMNode  mais je ne connais pas
la formule magique pour "caster" un objet interface en un autre (un "cast"
C++ standard crashe m�chamment).

Voici le bout de source concern�:
///************************************************
XML SOURCE
///************************************************
<root>
    <table>
        <line>xxx</line>
        <line>yyy</line>
        <line>zzz</line>
    </table>
    <table>
        <line>aaa</line>
        <line>bbb</line>
        <line>ccc</line>
    </table>
</root>
///****************************************************************
C++ SOURCE
///****************************************************************
../..
HRESULT hr;
bstr_t str = "/root/table";
  MSXML2::IXMLDOMNodeList *list ;
  MSXML2::IXMLDOMNode       *item ;
  MSXML2::IXMLDOMElement   *element ;
  hr= m_XmlDom->selectNodes(str,&list);
  ASSERT(hr== S_OK)    ;
  long len ;
  list->get_length(&len) ;// V�rifie que l'on a deux tables
  for(int i=0;hr== S_OK && i< len ;i++){ // Accede aux deux tables
successivement
       BSTR src ;
       hr = list->get_item(i,&item);// R�cup�re un NODE, tout va bien
       ASSERT(hr== S_OK)    ;
       hr= item->get_nodeType(&nodeType);// Verifie que le node est bien un
�l�ment, ca va toujours
       ASSERT(hr== S_OK)    ;
       ASSERT(nodeType == NODE_ELEMENT);
      //********************************************************
      // ***** A partir de l�, je d�croche, il faudrait r�cup�rer l'�l�ment.
HELP!****
      //********************************************************
    // j'ai essay� histoire de rigoler
      // element = (MSXML2::IXMLDOMElement   *) item    ;
      //Ca plante violent
     // Que faire en fait. il doit bien exister une formule magique pour
"caster" une interface dans un de ses descendants
    //ou une facon en DOM de reconstruire un �l�ment existant.
Technical Details
Message-ID: <8sbi8m$18l4$1@news5.isdnet.net>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!sienna.impulse.net!63.208.208.143.MISMATCH!feed2.onemain.com!feed1.onemain.com!isdnet!isdnethub!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII
X-Google-Thread: 114f60,6013863413d8b177,start
X-Google-Attributes: gid114f60,public
X-Google-ArrivalTime: 2000-10-14 23:20:06 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!sienna.impulse.net!63.208.208.143.MISMATCH!feed2.onemain.com!feed1.onemain.com!isdnet!isdnethub!not-for-mail
From: "Jean-Philippe BRUNET" <jean-philippe.brunet@libertysurf.fr>
Newsgroups: fr.comp.text.xml
Subject: "Caster" une interface "node" en interface "element" dans le DOM microsoft?
Date: Sun, 15 Oct 2000 08:25:23 +0200
Lines: 61
Message-ID: <8sbi8m$18l4$1@news5.isdnet.net>
NNTP-Posting-Host: dyn-213-36-92-14.ppp.libertysurf.fr
X-Trace: news5.isdnet.net 971590742 41636 213.36.92.14 (15 Oct 2000 06:19:02 GMT)
X-Complaints-To: abuse@isdnet.net
NNTP-Posting-Date: 15 Oct 2000 06:19:02 GMT
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.50.4133.2400
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400