<?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 auslesen mit C++]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich möchte eine kleine XML Datei mit C++ einlesen:</p>
<pre><code>&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;version&gt;1.0&lt;/version&gt;
&lt;image&gt;testimage.jpg&lt;/image&gt;
&lt;topology&gt;
	&lt;coords&gt;
		&lt;utm id=&quot;1&quot;&gt;
			&lt;h&gt;10.123&lt;/h&gt;
			&lt;v&gt;20.456&lt;/v&gt;
			&lt;d&gt;30.789&lt;/d&gt;
			&lt;format&gt;0&lt;/format&gt;
		&lt;/utm&gt;
		&lt;utm id=&quot;2&quot;&gt;
			&lt;h&gt;40.123&lt;/h&gt;
			&lt;v&gt;50.456&lt;/v&gt;
			&lt;d&gt;60.789&lt;/d&gt;
			&lt;format&gt;0&lt;/format&gt;
		&lt;/utm&gt;
	&lt;/coords&gt;
	&lt;edges&gt;
		&lt;edge id=&quot;1&quot;&gt;
			&lt;startknotid&gt;1&lt;/startknotid&gt;
			&lt;endknotid&gt;2&lt;/endknotid&gt;
		&lt;/edge&gt;
		&lt;edge id=&quot;2&quot;&gt;
			&lt;startknotid&gt;2&lt;/startknotid&gt;
			&lt;endknotid&gt;3&lt;/endknotid&gt;
		&lt;/edge&gt;
	&lt;/edges&gt;
&lt;/topology&gt;
</code></pre>
<p>Nachdem ich mich ein wenig umgeschaut habe, fand ich libxml des gnome projektes.</p>
<p>Leider gibt es dazu nur sehr umfangreiche Beispiele die einen fast schon erschlagen.</p>
<p>Könnte mir jemand sagen wie ich mit libxml den string aus &lt;image&gt;:testimage.jpg<br />
oder die ids herausbekomme?</p>
<p>Wäre dankbar wenn man mir die Methode nennen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268485/xml-auslesen-mit-c</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 17:52:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268485.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Jun 2010 19:22:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to XML auslesen mit C++ on Wed, 09 Jun 2010 19:22:28 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich möchte eine kleine XML Datei mit C++ einlesen:</p>
<pre><code>&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;version&gt;1.0&lt;/version&gt;
&lt;image&gt;testimage.jpg&lt;/image&gt;
&lt;topology&gt;
	&lt;coords&gt;
		&lt;utm id=&quot;1&quot;&gt;
			&lt;h&gt;10.123&lt;/h&gt;
			&lt;v&gt;20.456&lt;/v&gt;
			&lt;d&gt;30.789&lt;/d&gt;
			&lt;format&gt;0&lt;/format&gt;
		&lt;/utm&gt;
		&lt;utm id=&quot;2&quot;&gt;
			&lt;h&gt;40.123&lt;/h&gt;
			&lt;v&gt;50.456&lt;/v&gt;
			&lt;d&gt;60.789&lt;/d&gt;
			&lt;format&gt;0&lt;/format&gt;
		&lt;/utm&gt;
	&lt;/coords&gt;
	&lt;edges&gt;
		&lt;edge id=&quot;1&quot;&gt;
			&lt;startknotid&gt;1&lt;/startknotid&gt;
			&lt;endknotid&gt;2&lt;/endknotid&gt;
		&lt;/edge&gt;
		&lt;edge id=&quot;2&quot;&gt;
			&lt;startknotid&gt;2&lt;/startknotid&gt;
			&lt;endknotid&gt;3&lt;/endknotid&gt;
		&lt;/edge&gt;
	&lt;/edges&gt;
&lt;/topology&gt;
</code></pre>
<p>Nachdem ich mich ein wenig umgeschaut habe, fand ich libxml des gnome projektes.</p>
<p>Leider gibt es dazu nur sehr umfangreiche Beispiele die einen fast schon erschlagen.</p>
<p>Könnte mir jemand sagen wie ich mit libxml den string aus &lt;image&gt;:testimage.jpg<br />
oder die ids herausbekomme?</p>
<p>Wäre dankbar wenn man mir die Methode nennen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909693</guid><dc:creator><![CDATA[darkfate]]></dc:creator><pubDate>Wed, 09 Jun 2010 19:22:28 GMT</pubDate></item><item><title><![CDATA[Reply to XML auslesen mit C++ on Wed, 09 Jun 2010 19:58:14 GMT]]></title><description><![CDATA[<p>rapidxml ist sehr schön und vor allem schnell, bietet den Vorteil dass es Header Only ist, also nix extra kompilieren und linken. pugixml bietet ein paar Features mehr.<br />
tinyxml ist wohl aus historischen Gründen recht beliebt, hat aber performancetechnisch den Anschluss verpasst und ist auch sonst nicht so schön <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Also, wenn du dich nicht schon auf libxml eingeschossen hast (wovon ich nicht wirklich Peil hab) kannst du ja eine der Obigen Alternativen anschauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909711</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Wed, 09 Jun 2010 19:58:14 GMT</pubDate></item><item><title><![CDATA[Reply to XML auslesen mit C++ on Wed, 09 Jun 2010 20:10:21 GMT]]></title><description><![CDATA[<p>l'abra d'or schrieb:</p>
<blockquote>
<p>rapidxml ist sehr schön und vor allem schnell, bietet den Vorteil dass es Header Only ist, also nix extra kompilieren und linken. pugixml bietet ein paar Features mehr.<br />
tinyxml ist wohl aus historischen Gründen recht beliebt, hat aber performancetechnisch den Anschluss verpasst und ist auch sonst nicht so schön <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Also, wenn du dich nicht schon auf libxml eingeschossen hast (wovon ich nicht wirklich Peil hab) kannst du ja eine der Obigen Alternativen anschauen.</p>
</blockquote>
<p>Rapidxml und tinyxml haben leider den Nachteil das kein großes Projekt dahinter steht.<br />
Wer sorgt sich um die Bugs/Sicherheitslücken/Features?<br />
Hinter libxml ist das gnome projekt..<br />
kann auch sein dass meine Bedenken haltlos sind.<br />
Hatte noch nie etwas mit XML zu tun.</p>
<p>Daher wäre ich für jedes Beispiel dankbar.</p>
<p>Wie könnte man die UTM/Edge Objekte schnell und ohne Umwege<br />
in integer und doubles reinstecken? Erstmal keine Typprüfung<br />
oder Ähnliches.</p>
<p>Darüber kann ich mir später den Kopf zerbrechen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909717</guid><dc:creator><![CDATA[darkfate]]></dc:creator><pubDate>Wed, 09 Jun 2010 20:10:21 GMT</pubDate></item><item><title><![CDATA[Reply to XML auslesen mit C++ on Wed, 09 Jun 2010 20:48:41 GMT]]></title><description><![CDATA[<p>darkfate schrieb:</p>
<blockquote>
<p>Rapidxml und tinyxml haben leider den Nachteil das kein großes Projekt dahinter steht.<br />
Wer sorgt sich um die Bugs/Sicherheitslücken/Features?<br />
Hinter libxml ist das gnome projekt..<br />
kann auch sein dass meine Bedenken haltlos sind.</p>
</blockquote>
<p>Sicherheitslücken? Features? Wie bitte? Das sind simple einfache Parser. Die werden wohl auch kaum noch gross weiterentwickelt. Die nimmt man in der aktuellen Version, wenn sie einem passen, also die benötigte Funktionalität anbieten.<br />
RapidXml wird übrigens von Boost benutzt, ich denke daher, dass da schon gewisse Leute dahinter stehen, welche für das Fortkommen sorgen. Aber viel braucht es da nicht, da RapidXml ein extremes Leichtgewicht ist. Und Bugs kann bei so kleinen Bibliotheken auch ein einzelner Entwickler eliminieren. Und irgendwann sind die Bibliotheken so oft schon benutzt worden, dass man davon ausgehen kann, dass sie bugfrei sind.</p>
<p>Aber spezifische Hilfe zu libxml bekommst du hier wohl eher nur mühsam, denn:<br />
1. libxml ist in C geschrieben! Somit eigentlich schon falsches Forum.<br />
2. Solche Bibliothek begzogene Fragen sollte man besser in den Foren der Bibliotheken fragen bis auf ein paar Ausnahmen.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909752</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 09 Jun 2010 20:48:41 GMT</pubDate></item><item><title><![CDATA[Reply to XML auslesen mit C++ on Thu, 10 Jun 2010 06:09:10 GMT]]></title><description><![CDATA[<p>Ich finde <em>PugiXML</em> sehr schön gemacht.<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909839</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Thu, 10 Jun 2010 06:09:10 GMT</pubDate></item><item><title><![CDATA[Reply to XML auslesen mit C++ on Thu, 10 Jun 2010 06:15:42 GMT]]></title><description><![CDATA[<p>Es ist ja schön und gut die namen zu kennen.<br />
Wie siehts mit einem Beispiel zum obigen Datensatz aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909844</guid><dc:creator><![CDATA[darkfate]]></dc:creator><pubDate>Thu, 10 Jun 2010 06:15:42 GMT</pubDate></item><item><title><![CDATA[Reply to XML auslesen mit C++ on Thu, 10 Jun 2010 06:27:42 GMT]]></title><description><![CDATA[<p>darkfate schrieb:</p>
<blockquote>
<p>Wie siehts mit einem Beispiel zum obigen Datensatz aus?</p>
</blockquote>
<p>AFAIK kommst du da gar nicht ran <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /><br />
Ganz oben steht eigentlich nur Info zum XML-Dokument (Version usw)<br />
Deine Daten liegen alle unterhalb EINES Root-Elements. Also ist das XML nicht Standard-Konform. Bin aber nicht der XML-Spezialist und kenn die genaue Spezifikation nicht, kann also sein dass ich mich irre <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<p>Ansonsten steht hinter XML lesen nicht sooo viel Magie.<br />
<a href="http://rapidxml.sourceforge.net/manual.html" rel="nofollow">http://rapidxml.sourceforge.net/manual.html</a><br />
Wenn du PugiXml (<a href="http://pugixml.googlecode.com/svn/trunk/docs/index.html" rel="nofollow">http://pugixml.googlecode.com/svn/trunk/docs/index.html</a>) nimmst, kannst du viele Sachen einfacher gestalten dank XPath. Dazu sagt dir (u.A.) Wikipedia, wie so ein Query dann ausschaut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909846</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Thu, 10 Jun 2010 06:27:42 GMT</pubDate></item><item><title><![CDATA[Reply to XML auslesen mit C++ on Thu, 10 Jun 2010 06:33:36 GMT]]></title><description><![CDATA[<p>l'abra d'or schrieb:</p>
<blockquote>
<p>darkfate schrieb:</p>
<blockquote>
<p>Wie siehts mit einem Beispiel zum obigen Datensatz aus?</p>
</blockquote>
<p>AFAIK kommst du da gar nicht ran <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /><br />
Ganz oben steht eigentlich nur Info zum XML-Dokument (Version usw)<br />
Deine Daten liegen alle unterhalb EINES Root-Elements. Also ist das XML nicht Standard-Konform. Bin aber nicht der XML-Spezialist und kenn die genaue Spezifikation nicht, kann also sein dass ich mich irre <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
</blockquote>
<p>Super. Jetz werden wir konkret <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Jetzt nur noch ein Beispiel einer richtigen xml Datei und wie man diese in structs oder arrays schreiben kann.</p>
<p>Natürlich suche ich nebenbei auch selber... auch wenn es nicht so aussehen mag. Ich versuche hier mein Vorhaben zu beschleunigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909847</guid><dc:creator><![CDATA[darkfate]]></dc:creator><pubDate>Thu, 10 Jun 2010 06:33:36 GMT</pubDate></item><item><title><![CDATA[Reply to XML auslesen mit C++ on Thu, 10 Jun 2010 07:10:51 GMT]]></title><description><![CDATA[<p>Jippie, wie ichs mir gedacht hab.<br />
<a href="http://validator.w3.org/#validate-by-input" rel="nofollow">http://validator.w3.org/#validate-by-input</a><br />
Gib dein XML mal da ein. -&gt; Errors.<br />
Lösche DEINE version und image-nodes, dann ist es valid.</p>
<p>Zum Parsen:<br />
Du musst einfach die entsprechende Methode zum finden einer node auf eine andere node anwenden. Diese Methoden heißen &quot;first_child&quot;, &quot;find_node&quot; oder so. Da gibst du den Namen mit. &quot;Topology&quot; wäre der Name deiner document-root-node. Diese find_node-Methode wendest du Step-by-Step (meist in ner while-Schleife) auf das zuletzt gefundene an, bis du bei deiner Node bist. Evtl. brauchts ein next_sibling, falls du auf einer Ebene mehrere Nodes mit gleichem Namen hast.<br />
Wenn du zur Unterscheidung noch ein Attribute heranziehen willst, bietet dir z.B. PugiXML noch das &quot;find_child_by_attribute&quot;. Wenn du lange geschachtelte Abfragen hast, bietet pugixml auch XPath (xml_node::select_single_node, xml_node::select_nodes), oder wenns einfacher gestrickt ist ein &quot;xml_node::first_element_by_path&quot;. Die Dokus zu pugixml/rapidxml sind eigentlich nicht soooo schlecht. Da gibts ein paar Beispiele, anhand derer man sich vorwärts kämpfen kann. Diese werd ich jetzt nicht abtippen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1909857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909857</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Thu, 10 Jun 2010 07:10:51 GMT</pubDate></item><item><title><![CDATA[Reply to XML auslesen mit C++ on Thu, 10 Jun 2010 22:14:33 GMT]]></title><description><![CDATA[<p>Hy</p>
<p>Und selbst die Beispiele zu libxml find ich jetzt wirklich groß und sind recht gut gegliedert.<br />
Außerdem wäre es gut wenn du dir vllt diese Beispiele mal anschauen würdest damit du es selbst<br />
verstehst und entsprechend die Bibliothek einsetzten kannst.</p>
<p>Es bringt dir leider nix wenn du dir die Arbeit machen lässt, du willst ja bestimmt was dabei<br />
lernen.</p>
<p>Und nein ich kann dir kein Beispiel geben, da ich die Funktionalität von libxml für mein Projekt<br />
in entsprechende Klassen gekapselt habe. Aber diese werden auch bald wieder rausfliegen weil<br />
ich die Lib etwas zu groß find für mein kleines Projekt.</p>
<p>Mfg marco</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910369</guid><dc:creator><![CDATA[Marc-O]]></dc:creator><pubDate>Thu, 10 Jun 2010 22:14:33 GMT</pubDate></item></channel></rss>