Announcement

Collapse
No announcement yet.

XML-Fragment auslesen !?!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML-Fragment auslesen !?!

    Hallo,

    diesmal habe ich folgendes Problem. Ich habe ein XML-Fragment als std::string vorliegen! Diesen möchte ich nun auswerten, also Elemente und Attribute auslesen. Wie mache ich das am einfachsten?
    (Falls ich eine Bibliothek einbinden muss, dann nehme ich die libxml.dll)

    Ich versuchs nochmal anhand eines Beispiels zu erklären ...

    Das XML-Fragment:

    <PurchaseInformation purchaseID="3">
    <Price currency="EUR">49.98</Price>
    <PurchaseRequest request="http://www.shop.de"/>
    </PurchaseInformation>

    Und dieses Fragment steht im string fragment:

    #include <string>
    using namespace std;
    ..
    string price, currency;
    ..
    void readFragment(string fragment)
    {
    price = ???fragment???;
    currency = ???fragment???;
    }

    Wie komme ich zu 'price' (Element) und 'currency' (Attribut)?

    Falls es da keine einfache Lösung gibt, muss ich mir wohl zwei Methoden selbst schreiben (readElement(fragment, elementName), readAttribute(fragment, attributeName)).
    Das wollte ich mir eigentlich schenken.

    Gruss,
    ANDI

  • #2
    SAX Parser. Oder einen anderen XML Parse
    Christian

    Comment


    • #3
      So schlau bin ich auch! ;-)

      Und wie binde ich diesen Parser ein, wie sehen die Methoden aus, wie spreche ich diese an, ...

      Schlagwörter helfen mir nicht weiter! ;-)
      <br>

      Aber ich habe mir jetzt einfach die Methoden geschrieben ... sieht vereinfacht so aus:
      <br>

      string readXMLElement(string fragment, string elementName)
      {
      string element = "";
      <br>

      int pos = fragment.find(elementName);
      fragment = fragment.substr(pos,fragment.length()-1);
      <br>

      pos = fragment.find(">");
      fragment = fragment.substr(pos,fragment.length()-1);
      <br>

      pos = fragment.find("<");
      element = fragment.substr(0,pos);
      <br>

      return element;
      }

      &#10

      Comment


      • #4
        "So schlau bin ich auch! ;-) "

        Ist doch schön, dass du so schlau bist, aber ich bin kein Hellseher woher soll ich wissen ob und was für einen Parser du hast.

        Einbinden -> hängt vom Parser ab, Klasse, DLL, Quelltext
        Christian

        Comment

        Working...
        X