<?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]]></title><description><![CDATA[<p>hi</p>
<p>ich muss aus einer .xml datei daten auslesen</p>
<pre><code>&lt;text&gt;hallo&lt;/text&gt;
&lt;x&gt;12&lt;/x&gt;
&lt;y&gt;15&lt;/y&gt;
</code></pre>
<p>soll man auf eine lib zu greifen oder sich lieber den parser selber schreiben?<br />
wenn ich mir die libs so ansehe sind die mir etwas groß für sowas kleines.</p>
<p>wenn man sowas selber machen würde, wie sollte man vorgehen?</p>
<p>danke und guten rutsch euch allen! :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/257604/xml-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 07:40:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/257604.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Dec 2009 22:43:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to .xml auslesen on Wed, 30 Dec 2009 22:43:47 GMT]]></title><description><![CDATA[<p>hi</p>
<p>ich muss aus einer .xml datei daten auslesen</p>
<pre><code>&lt;text&gt;hallo&lt;/text&gt;
&lt;x&gt;12&lt;/x&gt;
&lt;y&gt;15&lt;/y&gt;
</code></pre>
<p>soll man auf eine lib zu greifen oder sich lieber den parser selber schreiben?<br />
wenn ich mir die libs so ansehe sind die mir etwas groß für sowas kleines.</p>
<p>wenn man sowas selber machen würde, wie sollte man vorgehen?</p>
<p>danke und guten rutsch euch allen! :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830115</guid><dc:creator><![CDATA[karl89]]></dc:creator><pubDate>Wed, 30 Dec 2009 22:43:47 GMT</pubDate></item><item><title><![CDATA[Reply to .xml auslesen on Wed, 30 Dec 2009 22:47:14 GMT]]></title><description><![CDATA[<p>Ich würde auf jeden Fall eine kleine Lib empfehlen.<br />
ticpp ist da recht schlank und bietet imo recht viel:</p>
<p><a href="http://code.google.com/p/ticpp/" rel="nofollow">http://code.google.com/p/ticpp/</a></p>
<p>Wenn es absolut minimal ist (du also nur ein name oder so auslesen musst, kannst das selbst machen, aber für alles andere würd ich ne lib nehmen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830120</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 30 Dec 2009 22:47:14 GMT</pubDate></item><item><title><![CDATA[Reply to .xml auslesen on Wed, 30 Dec 2009 22:50:11 GMT]]></title><description><![CDATA[<p>Kannst ja nen Parser mit Boost::Spirit und Regex-Syntax tippeln <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830122</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Wed, 30 Dec 2009 22:50:11 GMT</pubDate></item><item><title><![CDATA[Reply to .xml auslesen on Wed, 30 Dec 2009 22:52:14 GMT]]></title><description><![CDATA[<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>Kannst ja nen Parser mit Boost::Spirit und Regex-Syntax tippeln <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>genau das wollte ich nicht. boost ist an und für sich auch meine erste wahl gewesen. aber mir war das etwas zuviel aufwand für sowas kleines.</p>
<p>drakon schrieb:</p>
<blockquote>
<p>Ich würde auf jeden Fall eine kleine Lib empfehlen.<br />
ticpp ist da recht schlank und bietet imo recht viel:</p>
<p><a href="http://code.google.com/p/ticpp/" rel="nofollow">http://code.google.com/p/ticpp/</a></p>
<p>Wenn es absolut minimal ist (du also nur ein name oder so auslesen musst, kannst das selbst machen, aber für alles andere würd ich ne lib nehmen).</p>
</blockquote>
<p>klein, schlank und leicht. sowas hab ich gesucht! vielen dank drakon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830124</guid><dc:creator><![CDATA[karl89]]></dc:creator><pubDate>Wed, 30 Dec 2009 22:52:14 GMT</pubDate></item><item><title><![CDATA[Reply to .xml auslesen on Wed, 30 Dec 2009 23:12:55 GMT]]></title><description><![CDATA[<p>ehhh peinliche frage aber wo ist denn der download<br />
habe nur den download zur doku gefunden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830133</guid><dc:creator><![CDATA[karl89]]></dc:creator><pubDate>Wed, 30 Dec 2009 23:12:55 GMT</pubDate></item><item><title><![CDATA[Reply to .xml auslesen on Wed, 30 Dec 2009 23:14:06 GMT]]></title><description><![CDATA[<p>Ich empfehle tinyxml, hat sich bei mir schon mehrfach bewährt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830134</guid><dc:creator><![CDATA[mussdochgehen]]></dc:creator><pubDate>Wed, 30 Dec 2009 23:14:06 GMT</pubDate></item><item><title><![CDATA[Reply to .xml auslesen on Wed, 30 Dec 2009 23:17:07 GMT]]></title><description><![CDATA[<p>mussdochgehen schrieb:</p>
<blockquote>
<p>Ich empfehle tinyxml, hat sich bei mir schon mehrfach bewährt.</p>
</blockquote>
<p>ahh, ticpp reicht mir schon.</p>
<p>hab den download gefunden hier<br />
<a href="http://ticpp.googlecode.com/svn/docs/files.html" rel="nofollow">http://ticpp.googlecode.com/svn/docs/files.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830135</guid><dc:creator><![CDATA[karl89]]></dc:creator><pubDate>Wed, 30 Dec 2009 23:17:07 GMT</pubDate></item><item><title><![CDATA[Reply to .xml auslesen on Wed, 30 Dec 2009 23:18:29 GMT]]></title><description><![CDATA[<p>****<br />
-.- doch nicht, gibts doch nicht!</p>
<p>bin ich blind oder was?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830136</guid><dc:creator><![CDATA[karl89]]></dc:creator><pubDate>Wed, 30 Dec 2009 23:18:29 GMT</pubDate></item><item><title><![CDATA[Reply to .xml auslesen on Wed, 30 Dec 2009 23:24:11 GMT]]></title><description><![CDATA[<p><a href="http://sourceforge.net/projects/tinyxml/" rel="nofollow">http://sourceforge.net/projects/tinyxml/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830139</guid><dc:creator><![CDATA[??????]]></dc:creator><pubDate>Wed, 30 Dec 2009 23:24:11 GMT</pubDate></item><item><title><![CDATA[Reply to .xml auslesen on Wed, 30 Dec 2009 23:28:52 GMT]]></title><description><![CDATA[<p>ticpp ist ein C++ Wrapper für TinyXML..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830142</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 30 Dec 2009 23:28:52 GMT</pubDate></item><item><title><![CDATA[Reply to .xml auslesen on Thu, 31 Dec 2009 09:08:04 GMT]]></title><description><![CDATA[<p><a href="http://rapidxml.sourceforge.net/" rel="nofollow">rapidxml</a> ist ne template-library, da musst du nicht ne extra Library bauen und linken (oder die sourcen in dein Projekt einfügen). Ist verdammt schnell! Ungewohnt ist jedoch, dass den Objekten die name/value-Strings nicht gehören, das ist alles shared (drum auch recht schnell). Muss man sich selber um Speicher kümmern, oder den memory_pool nehmen.</p>
<p><a href="http://code.google.com/p/pugixml/" rel="nofollow">pugixml</a> ist da angenehmer, aber wieder eine zu kompilierende lib. Ist auch verdammt schnell (vor allem gegnüber tinyxml), und kann XPath, was zum schnellen Finden von Nodes richtig praktisch ist <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>drakon schrieb:</p>
<blockquote>
<p>ticpp ist ein C++ Wrapper für TinyXML..</p>
</blockquote>
<p>Eigentlich ist tinyxml selber schon in C++ geschrieben. ticpp verwendet templates und exceptions.<br />
Und templates hat der nicht ganz verstanden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> So Konstrukte wie die beiden</p>
<pre><code class="language-cpp">template &lt; class T &gt;
void IterateNext( const std::string&amp; value, T** next ) const
{
    Node* sibling = NextSibling( value, false );
    *next = dynamic_cast&lt; T* &gt;( sibling );
    while ( ( 0 != sibling ) &amp;&amp; ( 0 == *next ) )
    {
        sibling = sibling-&gt;NextSibling( value, false );
        *next = dynamic_cast&lt; T* &gt;( sibling );
    }
}
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">template &lt; class T &gt;
T* To() const
{
    T* pointer = dynamic_cast&lt; T* &gt;( this );
    if ( 0 == pointer )
    {
        std::string thisType = typeid( this ).name();
        std::string targetType = typeid( T ).name();
        std::string thatType = typeid( *this ).name();
        TICPPTHROW( &quot;The &quot; &lt;&lt; thisType.substr( 6 ) &lt;&lt; &quot; could not be casted to a &quot; &lt;&lt; targetType.substr( 6 )
					&lt;&lt; &quot; *, because the target object is not a &quot; &lt;&lt; targetType.substr( 6 ) &lt;&lt; &quot;. (It is a &quot; &lt;&lt; thatType.substr( 6 ) &lt;&lt; &quot;)&quot; );
    }
    return pointer;
}
</code></pre>
<p>In fast jedem template ein dynamic_cast oder typeid... tinyxml selber scheint ja schon deutlich langsamer und speicherhungriger zu sein als die beiden obigen, und dann kommen da noch diese dynamic_casts im ticpp-wrapper...<br />
Das würde anders gelöst schöner und schneller gehen (z.B. mit einem</p>
<pre><code class="language-cpp">enum {
    Type = 12 // CommentType
};
</code></pre>
<p>oder ähnlich. Das enum vergleichen und erst dann den dynamic_cast machen...<br />
Und die typeid().name()-Strings sind oft so kryptisch, die in ne Fehlermeldung zu packen ist, hmmm. Ein static-Member mit dem Namen sollte helfen. Soo viele Klassen sind das nicht, das braucht nur wenig Speicher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1830211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1830211</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Thu, 31 Dec 2009 09:08:04 GMT</pubDate></item></channel></rss>