Nachkomme von RapidXml



  • Hallo alle zusammen,

    ich habe mich grad mit RadipXml angefreundet, da es recht einfach und übersichtich ist. Nun habe ich folgende XML-Struktur:

    <Ebene1>
      <Ebene2>
        <UID>ID1</UID>
      </Ebene2>
      <Ebene2>
        <UID>ID2</UID>
      </Ebene2>
    </Ebene1>
    

    Es gibt also Elemente mit dem gleichen Tag, die sich anhand des Unterelementes UID eindeutig identifizieren lassen. Ich würde also gern xml_node von RadipXml um eine Methode myxml_node::firstNodeByUID() erweitern. Soweit kein Problem. Jetzt möchte ich aber gleichzeitig xml_document um eine Methode erweitern, um direkt Dateien zu parsen: myxml_document::parseFile().
    Beides für sich ist ja kein Problem. Allerdings erbt xml_document von xml_node. Wie erreiche dann aber, dass myxml_document von xml_document erbt, ich aber trotzdem auch meine myxml_node::firstNodeByUId bekomme?
    Auf folgendes bin ich selbst gekommen (Syntax vereinfacht):

    class myxml_node : public xml_node {};
    class myxml_document : public xml_document, public myxml_node {};
    

    Nur befürchte ich, wird damit folgendes nicht funktionieren, da die Member-Funktionen von xml_document natürlich xml_node verwenden und nicht myxml_node:

    myxml_document doc;
    
    doc.first_node()->firstNodeByUId();
    

    Kann ich das überhaupt über Veerbung lösen, oder müsste ich die gesamte xml_document Klasse neu schreiben?

    Heimchen


Anmelden zum Antworten