Xml auslesen



  • Janinoe schrieb:

    Habs zuerst mit Streams versucht, da wurde mir von allen Seiten gesagt, ich soll nen Parser benutzen ^^
    Vielleicht kann mir da ja noch jemand nen Tipp geben...

    Vielleicht mal im richtigen Unterforum versuchen? MSXML hört sich für mich jedenfalls nicht wie ANSI C++ an, und auch dein Code ist kein ANSI C++. Blind ins Blaue geraten: MFC.

    cu André



  • Janinoe schrieb:

    Hi, danke schon mal für die Antwort.
    Habs zuerst mit Streams versucht, da wurde mir von allen Seiten gesagt, ich soll nen Parser benutzen ^^
    Vielleicht kann mir da ja noch jemand nen Tipp geben...
    Wenn da keiner weiter weiß kann ichs ja noch mal mit Streams versuchen...
    Würd mich aber trotzdem über Antworten freuen 😃

    Gruß

    Mit Streams wirst du auf Dauer nicht glücklich werden.
    Die XML Dateien können ja z.B. beliebig mit Whitespaces "Formatiert" werden.

    Willst du es richtig machen (und dir einiges an Ärger sparen) nimm einen XML-Parser.

    Zum Auslesen der Attribute: eine Node hat eine Eigenschaft "attributes":
    http://msdn2.microsoft.com/en-us/library/ms761386(VS.85).aspx



  • Die XML Dateien können ja z.B. beliebig mit Whitespaces "Formatiert" werden.

    findfirstnot (' '); //oder iwie so ähnlich ^^
    

    aber wie schon gesagt - so bald du mehr als nur die eine zeile brauchst hast du mit dem xml-parser wahrscheinlich 20 zeilen mehr code und mit streams leicht das zehnfache...

    Bye



  • Whitespaces sind auch Zeilenumbrüche und Tabs.
    Z.B.:

    <EinTag
    
      AttributNr1              =
    
    '23' />
    

    Natürlich kann man das auch selber parsen.
    Auf den ersten Blick sieht es einfach aus und man denkt sich, es geht schneller als mit irgendeiner Lib rumzuhantieren.

    Es ist aber in jedem Fall schneller und bequemer mit einem XML-Parser, glaub mir.



  • Nur leider für mich als "Frischling" nicht so einfach 😉



  • Janinoe schrieb:

    Nur leider für mich als "Frischling" nicht so einfach 😉

    Hast du dir meinen Link angesehen?
    Sieht nicht besonders schwer aus die Attribute einer Node auszulesen.



  • Ja, gucke ich mir gerade an und probiers irgenwie umzusetzen.



  • Guten Morgen,
    habe hier einfach mal das probiert:

    void CXMLTestDlg::DisplayChildren(MSXML2::IXMLDOMNodePtr pParent)
    {
    	DisplayChild(pParent);
    
    	MSXML2::IXMLDOMNodePtr pChild;
    	for (pChild= pParent->firstChild; NULL != pChild; pChild = pChild->nextSibling)
    	{
    			pChild = pChild->attributes;
    			DisplayChildren(pChild);
    	}	
    }
    

    Habe mal so probiert an die Attribute ranzukommen.
    Kompiliert wird auch ohne zu meckern, aber beim Ausführen springt er dann in irgendson standarterzeugtes Blatt und meldet ne unbehandelte Ausnahme... 😕
    Würd mich freuen, wenn vielleicht mal jemand nen Stück Code hätte...
    Gruß Janinoe



  • Hallo,
    habs jetzt mit Hilfe eines XPath-Ausdruck hinbekommen.
    Vielen Dank für eure Hilfe. 👍
    Gruß Janinoe



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten