<?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[Rekursive XML-ähnliche Struktur]]></title><description><![CDATA[<p>Guten Abend.</p>
<p>Aus XML kennen wir eine Baumzweig-Struktur die unendlich viele Kinder-Strukturen haben kann... z.b.:</p>
<pre><code class="language-cpp">&lt;Garage&gt;
    &lt;Autos&gt;
        &lt;Meins&gt;
            &lt;Farbe:&quot;Rot&quot;&gt;
        &lt;/Meins&gt;
    &lt;/Autos&gt;
&lt;/Garage&gt;
</code></pre>
<p>Im Laufe des Programms können wir die Struktur um einige Elemente ergänzen:</p>
<pre><code class="language-cpp">&lt;Haus&gt;
    &lt;Hoehe:&quot;12m&quot;&gt;
    &lt;Straße:&quot;Musterstraße&quot;&gt;

    &lt;Wohnungen&gt;
        ...
    &lt;/Wohnungen&gt;
&lt;Haus&gt;

&lt;Garage&gt;
    &lt;Autos&gt;
        &lt;Meins&gt;
            &lt;Marke: BMW&gt;
            &lt;Modell:&quot;M4&quot;&gt;
            &lt;Farbe:&quot;Rot&quot;&gt;
         &lt;/Meins&gt;

         &lt;Nachbars&gt;
             &lt;Marke:&quot;VW&quot;&gt;
         &lt;/Nachbars&gt;
    &lt;/Autos&gt;
&lt;/Garage&gt;
</code></pre>
<p>Mit einem &quot;vector &lt; vector &lt;Data&gt; &gt; data&quot; wäre es eine 2D struktur und nur auf 2 Dimensionen begrenzt.</p>
<p>Das Problem dabei ist, dass es kein Stufenlimit geben darf, jedes Objekt kann also unendlich viele Objekte haben, welche ebenfalls unendlich viele Elemente enthalten können...</p>
<p>Meine Frage ist nun, wie man solch eine XML-ähnliche Hierarchie in C++ als Klasse implementieren könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/302438/rekursive-xml-ähnliche-struktur</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 08:29:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/302438.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Apr 2012 16:51:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rekursive XML-ähnliche Struktur on Wed, 18 Apr 2012 16:51:02 GMT]]></title><description><![CDATA[<p>Guten Abend.</p>
<p>Aus XML kennen wir eine Baumzweig-Struktur die unendlich viele Kinder-Strukturen haben kann... z.b.:</p>
<pre><code class="language-cpp">&lt;Garage&gt;
    &lt;Autos&gt;
        &lt;Meins&gt;
            &lt;Farbe:&quot;Rot&quot;&gt;
        &lt;/Meins&gt;
    &lt;/Autos&gt;
&lt;/Garage&gt;
</code></pre>
<p>Im Laufe des Programms können wir die Struktur um einige Elemente ergänzen:</p>
<pre><code class="language-cpp">&lt;Haus&gt;
    &lt;Hoehe:&quot;12m&quot;&gt;
    &lt;Straße:&quot;Musterstraße&quot;&gt;

    &lt;Wohnungen&gt;
        ...
    &lt;/Wohnungen&gt;
&lt;Haus&gt;

&lt;Garage&gt;
    &lt;Autos&gt;
        &lt;Meins&gt;
            &lt;Marke: BMW&gt;
            &lt;Modell:&quot;M4&quot;&gt;
            &lt;Farbe:&quot;Rot&quot;&gt;
         &lt;/Meins&gt;

         &lt;Nachbars&gt;
             &lt;Marke:&quot;VW&quot;&gt;
         &lt;/Nachbars&gt;
    &lt;/Autos&gt;
&lt;/Garage&gt;
</code></pre>
<p>Mit einem &quot;vector &lt; vector &lt;Data&gt; &gt; data&quot; wäre es eine 2D struktur und nur auf 2 Dimensionen begrenzt.</p>
<p>Das Problem dabei ist, dass es kein Stufenlimit geben darf, jedes Objekt kann also unendlich viele Objekte haben, welche ebenfalls unendlich viele Elemente enthalten können...</p>
<p>Meine Frage ist nun, wie man solch eine XML-ähnliche Hierarchie in C++ als Klasse implementieren könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2203343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2203343</guid><dc:creator><![CDATA[RussianTux]]></dc:creator><pubDate>Wed, 18 Apr 2012 16:51:02 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive XML-ähnliche Struktur on Wed, 18 Apr 2012 16:57:33 GMT]]></title><description><![CDATA[<p>So in der Art?</p>
<pre><code class="language-cpp">struct Tree {
  Tree* parent;
  Tree* childs;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2203348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2203348</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Wed, 18 Apr 2012 16:57:33 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive XML-ähnliche Struktur on Wed, 18 Apr 2012 17:05:26 GMT]]></title><description><![CDATA[<p>Ich denke mir das etwa so:</p>
<pre><code class="language-cpp">class data {
public:
  // Schnittstelle hier

private:
  std::string                        name_;
  std::map&lt;std::string, std::string&gt; attributes_;
  std::deque&lt;data&gt;                   child_nodes_;
};
</code></pre>
<p>Dann hättest du in deinem Beispiel beispielsweise ein Objekt mit Namen &quot;Haus&quot;, &quot;Hoehe&quot; und &quot;Straße&quot; wären in attributes_, und &quot;Wohnungen&quot; wäre der Name einer child node.</p>
<p>std::deque deshalb, weil die Objekte darin nicht verschoben werden, wenn die deque wächst - die Kopien, die std::vector braucht, wenn er vergrößert wird, könnten hier sehr teuer werden. Mit C++11 und Move-Semantik dürfte das allerdings auch zu bewältigen sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2203351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2203351</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Wed, 18 Apr 2012 17:05:26 GMT</pubDate></item></channel></rss>