<?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[Nachkomme von RapidXml]]></title><description><![CDATA[<p>Hallo alle zusammen,</p>
<p>ich habe mich grad mit RadipXml angefreundet, da es recht einfach und übersichtich ist. Nun habe ich folgende XML-Struktur:</p>
<pre><code>&lt;Ebene1&gt;
  &lt;Ebene2&gt;
    &lt;UID&gt;ID1&lt;/UID&gt;
  &lt;/Ebene2&gt;
  &lt;Ebene2&gt;
    &lt;UID&gt;ID2&lt;/UID&gt;
  &lt;/Ebene2&gt;
&lt;/Ebene1&gt;
</code></pre>
<p>Es gibt also Elemente mit dem gleichen Tag, die sich anhand des Unterelementes UID eindeutig identifizieren lassen. Ich würde also gern xml_node von RadipXml um eine Methode myxml_node::firstNodeByUID() erweitern. Soweit kein Problem. Jetzt möchte ich aber gleichzeitig xml_document um eine Methode erweitern, um direkt Dateien zu parsen: myxml_document::parseFile().<br />
Beides für sich ist ja kein Problem. Allerdings erbt xml_document von xml_node. Wie erreiche dann aber, dass myxml_document von xml_document erbt, ich aber trotzdem auch meine myxml_node::firstNodeByUId bekomme?<br />
Auf folgendes bin ich selbst gekommen (Syntax vereinfacht):</p>
<pre><code>class myxml_node : public xml_node {};
class myxml_document : public xml_document, public myxml_node {};
</code></pre>
<p>Nur befürchte ich, wird damit folgendes nicht funktionieren, da die Member-Funktionen von xml_document natürlich xml_node verwenden und nicht myxml_node:</p>
<pre><code>myxml_document doc;

doc.first_node()-&gt;firstNodeByUId();
</code></pre>
<p>Kann ich das überhaupt über Veerbung lösen, oder müsste ich die gesamte xml_document Klasse neu schreiben?</p>
<p>Heimchen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/310637/nachkomme-von-rapidxml</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 09:39:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310637.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 17 Nov 2012 09:45:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Nachkomme von RapidXml on Sat, 17 Nov 2012 09:45:11 GMT]]></title><description><![CDATA[<p>Hallo alle zusammen,</p>
<p>ich habe mich grad mit RadipXml angefreundet, da es recht einfach und übersichtich ist. Nun habe ich folgende XML-Struktur:</p>
<pre><code>&lt;Ebene1&gt;
  &lt;Ebene2&gt;
    &lt;UID&gt;ID1&lt;/UID&gt;
  &lt;/Ebene2&gt;
  &lt;Ebene2&gt;
    &lt;UID&gt;ID2&lt;/UID&gt;
  &lt;/Ebene2&gt;
&lt;/Ebene1&gt;
</code></pre>
<p>Es gibt also Elemente mit dem gleichen Tag, die sich anhand des Unterelementes UID eindeutig identifizieren lassen. Ich würde also gern xml_node von RadipXml um eine Methode myxml_node::firstNodeByUID() erweitern. Soweit kein Problem. Jetzt möchte ich aber gleichzeitig xml_document um eine Methode erweitern, um direkt Dateien zu parsen: myxml_document::parseFile().<br />
Beides für sich ist ja kein Problem. Allerdings erbt xml_document von xml_node. Wie erreiche dann aber, dass myxml_document von xml_document erbt, ich aber trotzdem auch meine myxml_node::firstNodeByUId bekomme?<br />
Auf folgendes bin ich selbst gekommen (Syntax vereinfacht):</p>
<pre><code>class myxml_node : public xml_node {};
class myxml_document : public xml_document, public myxml_node {};
</code></pre>
<p>Nur befürchte ich, wird damit folgendes nicht funktionieren, da die Member-Funktionen von xml_document natürlich xml_node verwenden und nicht myxml_node:</p>
<pre><code>myxml_document doc;

doc.first_node()-&gt;firstNodeByUId();
</code></pre>
<p>Kann ich das überhaupt über Veerbung lösen, oder müsste ich die gesamte xml_document Klasse neu schreiben?</p>
<p>Heimchen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271671</guid><dc:creator><![CDATA[heimchen]]></dc:creator><pubDate>Sat, 17 Nov 2012 09:45:11 GMT</pubDate></item></channel></rss>