<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[XML parsen]]></title><description><![CDATA[<p>Hallo, für ein Projekt bin ich gezwungen einige XML-Dokumente zu parsen<br />
Da meine Vorkenntnisse auf dem Gebiet ohnehin gegen 0 gehen, wollte ich fragen ob ihr eine möglichst einfache Bib kennt die mir dabei hilft.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/258797/xml-parsen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 14:32:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258797.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Jan 2010 10:05:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to XML parsen on Fri, 15 Jan 2010 10:05:25 GMT]]></title><description><![CDATA[<p>Hallo, für ein Projekt bin ich gezwungen einige XML-Dokumente zu parsen<br />
Da meine Vorkenntnisse auf dem Gebiet ohnehin gegen 0 gehen, wollte ich fragen ob ihr eine möglichst einfache Bib kennt die mir dabei hilft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839157</guid><dc:creator><![CDATA[shisha]]></dc:creator><pubDate>Fri, 15 Jan 2010 10:05:25 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Fri, 15 Jan 2010 10:16:07 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p><a href="http://lmgtfy.com/?q=c%2B%2B+xml+parser+library" rel="nofollow">http://lmgtfy.com/?q=c%2B%2B+xml+parser+library</a></p>
<p>Lg Tobi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839165</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Fri, 15 Jan 2010 10:16:07 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Fri, 15 Jan 2010 10:14:44 GMT]]></title><description><![CDATA[<p><a href="http://rapidxml.sourceforge.net/" rel="nofollow">http://rapidxml.sourceforge.net/</a><br />
<a href="http://www.grinninglizard.com/tinyxml/" rel="nofollow">http://www.grinninglizard.com/tinyxml/</a><br />
<a href="http://expat.sourceforge.net/" rel="nofollow">http://expat.sourceforge.net/</a></p>
<p>Hier mal einige...<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839164</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Fri, 15 Jan 2010 10:14:44 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Fri, 15 Jan 2010 15:37:19 GMT]]></title><description><![CDATA[<p><a href="http://code.google.com/p/ticpp/" rel="nofollow">ticpp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839370</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 15 Jan 2010 15:37:19 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Fri, 15 Jan 2010 15:41:39 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p><a href="http://code.google.com/p/ticpp/" rel="nofollow">ticpp</a></p>
</blockquote>
<p>Rate ich dringend davon ab!<br />
Die Speicherverwaltung ist miserable gelöst darin. Wenn du zum Beispiel über 3000 Nodes iterierst, dann wird in jedem Iterationsschritt neuer Speicher allokiert und dem vorherigen zur Verwaltung übergeben. Dadurch hast du am Ende der Iteration (am Ende des Blocks) eine rekursive Speicheraufräumung von 3000 Schritten. Der Stackoverflow lässt freundlich grüssen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839374</guid><dc:creator><![CDATA[Dravere_logoff]]></dc:creator><pubDate>Fri, 15 Jan 2010 15:41:39 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Fri, 15 Jan 2010 15:43:46 GMT]]></title><description><![CDATA[<p>Dravere_logoff schrieb:</p>
<blockquote>
<p>..</p>
</blockquote>
<p>Ok, das wusste ich nicht. Habe sie nie grossartig getestet. Fand einfach die Installation und Benutzung recht einfach.<br />
Was empfiehlst du denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839379</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 15 Jan 2010 15:43:46 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Fri, 15 Jan 2010 15:49:47 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Was empfiehlst du denn?</p>
</blockquote>
<p>Keine ... leider.<br />
Als ich eine gebraucht habe, waren sie entweder zu gross und umständlich oder dann klein und schlecht programmiert. Wobei TinyXML damals noch die Nase weit vorne hatte. Es ist zwar kein schönes C++ und auch ist sie nicht so wahnsinnig schnell, aber man kann einigermasen vernünftig damit was realisieren.</p>
<p>Schlussendlich hatte ich damals eine eigene XML Bibliothek geschrieben und verwendet.</p>
<p>Von RapidXML habe ich erst später was gehört und bisher nur gutes. Kann selber aber halt kein Urteil dazu abgeben, müsste ich zuerst mal testen.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839382</guid><dc:creator><![CDATA[Dravere_logoff]]></dc:creator><pubDate>Fri, 15 Jan 2010 15:49:47 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Fri, 15 Jan 2010 16:02:49 GMT]]></title><description><![CDATA[<p>Wie ist den XmlLite von Microsoft?<br />
Hat damit schon jemand hier gearbeitet?</p>
<p>MfG,<br />
ScRaT</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839392</guid><dc:creator><![CDATA[ScRaT_GER]]></dc:creator><pubDate>Fri, 15 Jan 2010 16:02:49 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Wed, 24 Mar 2010 14:10:50 GMT]]></title><description><![CDATA[<p>Dravere_logoff schrieb:</p>
<blockquote>
<p>Die Speicherverwaltung ist miserable gelöst darin. Wenn du zum Beispiel über 3000 Nodes iterierst, dann wird in jedem Iterationsschritt neuer Speicher allokiert und dem vorherigen zur Verwaltung übergeben. Dadurch hast du am Ende der Iteration (am Ende des Blocks) eine rekursive Speicheraufräumung von 3000 Schritten. Der Stackoverflow lässt freundlich grüssen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>bin zwar jetzt mit der suche auf diesen tollen hinweis gekommen, jedoch frage ich mich, ob das problem noch immer vorhanden ist oder ob dies damals so war als du xml libs getestet hast (falls dieser test schon länger her ist?)<br />
wie kann man das überprüfen ob dies noch immer so ist? wenn man ein 100mb xml file die nodes einfach durchläuft ?!</p>
<p>danke<br />
lg johannes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1873342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873342</guid><dc:creator><![CDATA[taff]]></dc:creator><pubDate>Wed, 24 Mar 2010 14:10:50 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Wed, 24 Mar 2010 14:28:41 GMT]]></title><description><![CDATA[<p>tinyxml (und ticpp) ist nicht wirklich besser geworden. Vor allem ticpp hat einige Passagen, in denen arge Perfomanceeinbußen hingenommen werden (iteration über alle children und dabei Testen per dynamic_cast, ob der Typ auch zum Template-Parameter passt., z.B.)</p>
<p>rapidxml ist nicht schlecht, wenngleich recht minimalistisch, dafür wie vieles von boost eine reine Header-lib. Noch dazu ist es die einzige die ich kenn, die einem den char-Typen wählen lässt (template halt).</p>
<p>Ich verwende muttlerweile pugixml. Bietet eigentlich eine recht umfangreiche Schnittstelle um sich durch den DOM-Tree zu hangeln (z.B. find_child_by_attribute).<br />
Außerdem bietet es XPath, was das Holen einer Node auf einen einzigen Funktionsaufruf beschränkt (schau mal bei <a href="http://de.wikipedia.org/wiki/XPATH" rel="nofollow">wikipedia</a>).<br />
Es gibt auch iteratoren, wenn man das braucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1873348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873348</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Wed, 24 Mar 2010 14:28:41 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Wed, 24 Mar 2010 15:01:59 GMT]]></title><description><![CDATA[<p>Ich kann die Qt-XML-Klassen empfehlen, aber das wird sich wohl nur lohnen wenn man eh schon mit Qt entwickelt, ansonsten sind die Abhängigkeiten die man sich damit einkauft viel zu groß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1873369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873369</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Wed, 24 Mar 2010 15:01:59 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Wed, 24 Mar 2010 15:24:06 GMT]]></title><description><![CDATA[<p>Ich hatte da mal einen kleine Vergleich geschrieben...<br />
<a href="http://lars.ruoff.free.fr/xmlcpp/" rel="nofollow">http://lars.ruoff.free.fr/xmlcpp/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1873386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873386</guid><dc:creator><![CDATA[scrontch]]></dc:creator><pubDate>Wed, 24 Mar 2010 15:24:06 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Wed, 24 Mar 2010 15:51:10 GMT]]></title><description><![CDATA[<p>taff schrieb:</p>
<blockquote>
<p>Dravere_logoff schrieb:</p>
<blockquote>
<p>Die Speicherverwaltung ist miserable gelöst darin. Wenn du zum Beispiel über 3000 Nodes iterierst, dann wird in jedem Iterationsschritt neuer Speicher allokiert und dem vorherigen zur Verwaltung übergeben. Dadurch hast du am Ende der Iteration (am Ende des Blocks) eine rekursive Speicheraufräumung von 3000 Schritten. Der Stackoverflow lässt freundlich grüssen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>bin zwar jetzt mit der suche auf diesen tollen hinweis gekommen, jedoch frage ich mich, ob das problem noch immer vorhanden ist oder ob dies damals so war als du xml libs getestet hast (falls dieser test schon länger her ist?)</p>
</blockquote>
<p>Ist schon länger her, habe daher kurz in den aktuellen TiCpp Code geschaut, aber scheint immer noch genau gleich zu laufen mit der Speicherverwaltung. Das erstellte Wrapper-Objekt wird dem vorherigen Wrapper-Objekt zur Verwaltung übergeben. Und erst wenn das Parent-Wrapper Objekt zerstört wird, werden die anderen Wrapper Objekte rekursiv im Destruktor der Reihe nach zerstört. Bäm.</p>
<p>taff schrieb:</p>
<blockquote>
<p>wie kann man das überprüfen ob dies noch immer so ist? wenn man ein 100mb xml file die nodes einfach durchläuft ?!</p>
</blockquote>
<p>Ich habe damals dieses File durchlaufen:<br />
<a href="http://wiretap.wwiionline.com/xml/facilitylist.xml" rel="nofollow">http://wiretap.wwiionline.com/xml/facilitylist.xml</a></p>
<p>Allerdings war es in einer Anwendung drin, dass heisst, dass bereits etwas Speicher vom Stack verwendet wurde. Also wenn man es direkt von der main aus macht, könnte es vielleicht funktionieren. Ist ja auch das heimtückische an diesem Fehldesign. Es fällt erst bei wirklich grossen Sachen auf. Und der Fehler kommt einem auch noch am Ende eines Blockes entgegen geflogen, nämlich dort, wo die Destruktoren aufgerufen werden. Da ist man sehr froh, wenn man weiss, wie ein Debugger und Callstack zu verwenden ist.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1873403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873403</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 24 Mar 2010 15:51:10 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Thu, 25 Mar 2010 07:49:22 GMT]]></title><description><![CDATA[<p>super danke für die vielen antworten! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>das heißt also zusmamengefasst, wenn man tinyxml verwenden möchte/soll, dann sollte man tinyxml direkt verwenden ohne dem ticpp-wrapper?!</p>
<p>es ist so, dass ich pyhton code habe den ich quasi in c++ unter linux nachbilden muss/möchte und dieser code verwendet tinyxml und da war mein gedanke, dass ich dies genau so mit tinyxml realisiere der einfachheit halber. soll ich das dann auch tun in euren augen oder auf ein stärkeres pferd ala rapidxml (oder was anderes einfach+schlankes) setzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1873647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873647</guid><dc:creator><![CDATA[taff]]></dc:creator><pubDate>Thu, 25 Mar 2010 07:49:22 GMT</pubDate></item><item><title><![CDATA[Reply to XML parsen on Thu, 25 Mar 2010 08:48:46 GMT]]></title><description><![CDATA[<p>Schau dir mal Arabica an, damit kannst du zwischen verschiedenen vollwertigen XML Parsern wechseln.<br />
Du musst dich halt entscheiden, benötigst du vollen XML Support, oder reichen dir parser wie pugi/rapidxml, welche zum Teil keine Namespaces oder Validierung können.</p>
<p><a href="http://www.jezuk.co.uk/cgi-bin/view/arabica" rel="nofollow">http://www.jezuk.co.uk/cgi-bin/view/arabica</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1873671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873671</guid><dc:creator><![CDATA[arabica]]></dc:creator><pubDate>Thu, 25 Mar 2010 08:48:46 GMT</pubDate></item></channel></rss>