String oder char* an Parsemethode übergeben, wie?



  • Hallo,

    habe mal eine Frage an euch.
    Ich benutze die Bibliothek von Xerces, und dabei die Methode parse der
    Klasse SAX2XMLReader um ein Xml file zu parsen.
    Das funktioniert alles einwandfrei. Ich möchte jetzt aber direkt einen String bzw char* parsen, ohne ihn vorher in eine Datei zu schreiben 😕 . Ist dies irgendwie möglich? kann char* oder String in eine InputSource konvertiert werden?

    würde mich sehr über hilfe freuen.
    🙂



  • was übergibst du im normalfall an die parsemethode? (den dateinamen, stream, etc.)



  • Jepp den dateinamen einer xml datei.
    Will aber wie gesagt, keine Datei übergeben, da mein code eine dll werden soll
    die nicht auf die Platte zugreift.
    Man könnte auch noch ein Objekt der Klasse InputSource übergeben, das kann zb
    die Standardeingabe sein.....



  • Ich muesst mich jetzt durch die doku wuehlen ... dazu aber keine Zeit 🙂
    Bin mir aber 100% sicher, dass der Xerces als input keinen Filename als string nimmst, sondern nen istream ....

    Also musst nur schauen, wie du von deinem string zu nem istream kommst ... was aber kein problem sein sollte ....

    Ciao ...



  • Also ich parse per SAX, mit der Methode parse.

    virtual void parse (const InputSource &source)=0
    Parse an XML document.

    virtual void parse (const XMLCh *const systemId)=0
    Parse an XML document from a system identifier (URI).

    virtual void parse (const char *const systemId)=0
    Parse an XML document from a system identifier (URI).

    das ist die Beschreibung dazu.
    Meiner Meinung nach kann ich hier nur ne InputSource übergeben, oder eben
    ne Uri.
    Ich werde deinem Tipp mit dem istream aber mal nachgehen, danke 😋

    Habt ihr sonst noch Tipps für mich? 😕


Anmelden zum Antworten