BCB und XML problem



  • ich arbeite viel mit bcb und xml.
    solange man nur beispielsweise sachen wie

    <p>bla</p><a/><b/><c/>
    

    hat geht das auch ganz gut, aber ich habe das problem das folgende konstruktionen auch vorkommen können:

    <p>bla <dumm/> blupp</p>
    

    wenn ich den inhalt von p nun mit GetText() auslesen möchte bekomme ich einen fehler (ist ja auch logisch).
    nur <dumm/> auszulesen geht ja über ChildNodes... auch noch, aber wie bekomme ich es nun hin dass der Text und <dumm/> ausgelesen wird? und dann zB in einem Label "bla DUMMMMM blupp" ausgegeben wird?



  • Konsti schrieb:

    aber wie bekomme ich es nun hin dass der Text und <dumm/> ausgelesen wird? und dann zB in einem Label "bla DUMMMMM blupp" ausgegeben wird?

    Das macht doch keinen sinn, wenn man <DUMMM/> schreibt und das DUMM dort stehen soll. :|



  • es ist auch völlig egal was da stehen soll! es geht doch nur ums prinzip! dann mach ich halte mehr ein html mäßiges bsp.:

    <p>Klicken Sie <a href="weltuntergang.xml">hier</a> um die Welt untergehen zu lassen.</p>
    

    und dann soll da halt stehen:
    Klicken Sie hier um die Welt untergehen zu lassen.



  • So sollte es eigentlich funktionieren

    &lt; für <
    &gt; für >
    
    &qout; für "
    

    Musst dann noch evtl. die Zeichen wieder umwandeln, um sie korrekt darzustellen.



  • Konsti,
    in dem XML-Dokument "<p>bla <dumm/> blupp</p>" ist das Element mit dem Namen "p" kein einfaches Text-Element mehr, da es ein Kind-Element enthält. Daher kannst Du auch die "Text"-Property nicht mehr abfragen (bzw. die GetText-Methode ausführen, was auf das selbe hinausläuft).
    Der Inhalt von Element "p" ist nun eine Baumstruktur und Du mußt Dich durch diese Struktur hangeln - ein Beispiel:

    _di_IXMLNodeList nodeList = node->GetChildNodes();
    String s = nodeList->GetNode(0)->Text + nodeList->GetNode(1)->GetNodeName() 
              + nodeList->GetNode(2)->Text;
    

    , wobei node das Element "p" aus Deinem Beispiel sei.



  • danke dschensky. habs aber mittlerweile schon selbst rausgefunden! *kopfhau*, darauf hätt ich auch gleich kommen können!


Anmelden zum Antworten