<?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[Bestimmte Bereiche aus XML-Datei entfernen]]></title><description><![CDATA[<p>Hallo!<br />
Folgendes Problem:<br />
Ich habe eine Reihe von XML-Dateien, aus denen ich gerne einige Tags entfernen würde (immer die gleichen Tags die raus sollen).<br />
Hatte mir gedacht, ich mach das mit getline, klappt auch prinzipiell, allerdings nur, wenn ich nur ein Element entfernen will, bei mehreren gibts leider Probleme...<br />
Kann jm. mal über den Code schauen und mir sagen, wo mein Denkfehler ist? Bin leider noch ziemlicher Neuling in Sachen C++</p>
<pre><code class="language-csharp">#include &quot;stdafx.h&quot;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;conio.h&gt;
#include &lt;string&gt;
using namespace std;

int main(int argc, char* argv[])
{
  ifstream datei;
  ofstream neuedatei;
  string zeile;

  datei.open(&quot;test.xml&quot;, ios::in);
  neuedatei.open(&quot;temp.xml&quot;, ios::out);

  bool gefunden = false;

  do
  {
    getline(datei,zeile);
    if(zeile.find( &quot;&lt;Datum&gt;&quot; ) !=string::npos)
      gefunden = true;
    if(!gefunden)
    neuedatei &lt;&lt; zeile &lt;&lt; endl;
    if(zeile.find( &quot;&lt;/Datum&gt;&quot; ) !=string::npos)
      gefunden = false;

    getline(datei,zeile);
    if(zeile.find( &quot;&lt;Plakat&gt;&quot; ) !=string::npos)
      gefunden = true;
    if(!gefunden)
      neuedatei &lt;&lt; zeile &lt;&lt; endl;
   if(zeile.find( &quot;&lt;/Plakat&gt;&quot; ) !=string::npos)
      gefunden = false;

  }while(!datei.eof());

  datei.close();
  neuedatei.close();

  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/200273/bestimmte-bereiche-aus-xml-datei-entfernen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 04 Oct 2026 20:46:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200273.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Dec 2007 19:54:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bestimmte Bereiche aus XML-Datei entfernen on Wed, 12 Dec 2007 19:54:17 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Folgendes Problem:<br />
Ich habe eine Reihe von XML-Dateien, aus denen ich gerne einige Tags entfernen würde (immer die gleichen Tags die raus sollen).<br />
Hatte mir gedacht, ich mach das mit getline, klappt auch prinzipiell, allerdings nur, wenn ich nur ein Element entfernen will, bei mehreren gibts leider Probleme...<br />
Kann jm. mal über den Code schauen und mir sagen, wo mein Denkfehler ist? Bin leider noch ziemlicher Neuling in Sachen C++</p>
<pre><code class="language-csharp">#include &quot;stdafx.h&quot;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;conio.h&gt;
#include &lt;string&gt;
using namespace std;

int main(int argc, char* argv[])
{
  ifstream datei;
  ofstream neuedatei;
  string zeile;

  datei.open(&quot;test.xml&quot;, ios::in);
  neuedatei.open(&quot;temp.xml&quot;, ios::out);

  bool gefunden = false;

  do
  {
    getline(datei,zeile);
    if(zeile.find( &quot;&lt;Datum&gt;&quot; ) !=string::npos)
      gefunden = true;
    if(!gefunden)
    neuedatei &lt;&lt; zeile &lt;&lt; endl;
    if(zeile.find( &quot;&lt;/Datum&gt;&quot; ) !=string::npos)
      gefunden = false;

    getline(datei,zeile);
    if(zeile.find( &quot;&lt;Plakat&gt;&quot; ) !=string::npos)
      gefunden = true;
    if(!gefunden)
      neuedatei &lt;&lt; zeile &lt;&lt; endl;
   if(zeile.find( &quot;&lt;/Plakat&gt;&quot; ) !=string::npos)
      gefunden = false;

  }while(!datei.eof());

  datei.close();
  neuedatei.close();

  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1419626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419626</guid><dc:creator><![CDATA[mo111]]></dc:creator><pubDate>Wed, 12 Dec 2007 19:54:17 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmte Bereiche aus XML-Datei entfernen on Wed, 12 Dec 2007 21:12:40 GMT]]></title><description><![CDATA[<p>ich empfehle einen fertigen parser zu benutzen, beispielsweise <a href="http://www.grinninglizard.com/tinyxml/" rel="nofollow">tinyxml</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419664</guid><dc:creator><![CDATA[der mob]]></dc:creator><pubDate>Wed, 12 Dec 2007 21:12:40 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmte Bereiche aus XML-Datei entfernen on Wed, 12 Dec 2007 22:55:04 GMT]]></title><description><![CDATA[<p>oder expat <a href="http://expat.sourceforge.net/" rel="nofollow">http://expat.sourceforge.net/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419696</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Wed, 12 Dec 2007 22:55:04 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmte Bereiche aus XML-Datei entfernen on Thu, 13 Dec 2007 12:18:23 GMT]]></title><description><![CDATA[<p>Ich wollte eigentlich keinen externen Parser nutzen...<br />
Müsste ja auch so gehen, hab nur nen kleinen Fehler im Programmcode anscheinend. Keiner eine Idee dazu?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419909</guid><dc:creator><![CDATA[mo111]]></dc:creator><pubDate>Thu, 13 Dec 2007 12:18:23 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmte Bereiche aus XML-Datei entfernen on Thu, 13 Dec 2007 13:49:42 GMT]]></title><description><![CDATA[<p>Naja mach es so:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

int main(int argc, char* argv[])
{
    std::ifstream file_stream_old(&quot;input.xml&quot;);
    if (!file_stream_old) { std::cerr &lt;&lt; &quot;FEHLER: \&quot;input.xml\&quot; konnte nicht geöffnet werden!&quot; &lt;&lt; std::endl; return 1; }
    std::ofstream file_stream_new(&quot;output.xml&quot;);
    if (!file_stream_new) { std::cerr &lt;&lt; &quot;FEHLER: \&quot;output.xml\&quot; konnte nicht erstellt werden!&quot; &lt;&lt; std::endl; return 2; }

    std::string string_line;
    while (std::getline(file_stream_old, string_line))
    {
    }
}
</code></pre>
<p>. So das dazu erstmal. Dann das lesen selbst. Hier musst du dir merken, ob du nun gerade in einem &lt;Datum&gt;-Tag bist, oder nicht. Dabei solltest du beachten, dass ein &lt;Datum /&gt; auch ein abgeschlossenes &lt;Datum&gt;-Tag ist!<br />
Dann nimm je eine bool-Variable für den Status eines Tags. Nicht eine für zwei!</p>
<p>Versuch es nochmal. Wenn du es dann jetzt immernoch nicht schafst, sag bescheid. Aja, wenn er im Tag ist, brauchst du nicht nach dem Anfang für dieses Tag zu suchen! (Performance steigernd!)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419962</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 13 Dec 2007 13:49:42 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmte Bereiche aus XML-Datei entfernen on Thu, 13 Dec 2007 14:02:25 GMT]]></title><description><![CDATA[<p>mo111 schrieb:</p>
<blockquote>
<p>Ich wollte eigentlich keinen externen Parser nutzen...</p>
</blockquote>
<p>wenn du meinst. es ist aber nicht so einfach, xml richtig zu parsen.</p>
<p>(D)Evil schrieb:</p>
<blockquote>
<p>Dabei solltest du beachten, dass ein &lt;Datum /&gt; auch ein abgeschlossenes &lt;Datum&gt;-Tag ist!</p>
</blockquote>
<p>...während z. b.</p>
<pre><code>&lt;!-- 
&lt;Datum /&gt;
--&gt;
</code></pre>
<p>keines ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419969</guid><dc:creator><![CDATA[der mob]]></dc:creator><pubDate>Thu, 13 Dec 2007 14:02:25 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmte Bereiche aus XML-Datei entfernen on Thu, 13 Dec 2007 15:44:00 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<p>Naja mach es so:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

int main(int argc, char* argv[])
{
    std::ifstream file_stream_old(&quot;input.xml&quot;);
    if (!file_stream_old) { std::cerr &lt;&lt; &quot;FEHLER: \&quot;input.xml\&quot; konnte nicht geöffnet werden!&quot; &lt;&lt; std::endl; return 1; }
    std::ofstream file_stream_new(&quot;output.xml&quot;);
    if (!file_stream_new) { std::cerr &lt;&lt; &quot;FEHLER: \&quot;output.xml\&quot; konnte nicht erstellt werden!&quot; &lt;&lt; std::endl; return 2; }

    std::string string_line;
    while (std::getline(file_stream_old, string_line))
    {
    }
}
</code></pre>
<p>. So das dazu erstmal. Dann das lesen selbst. Hier musst du dir merken, ob du nun gerade in einem &lt;Datum&gt;-Tag bist, oder nicht. Dabei solltest du beachten, dass ein &lt;Datum /&gt; auch ein abgeschlossenes &lt;Datum&gt;-Tag ist!<br />
Dann nimm je eine bool-Variable für den Status eines Tags. Nicht eine für zwei!</p>
<p>Versuch es nochmal. Wenn du es dann jetzt immernoch nicht schafst, sag bescheid. Aja, wenn er im Tag ist, brauchst du nicht nach dem Anfang für dieses Tag zu suchen! (Performance steigernd!)</p>
</blockquote>
<p>So ganz versteh ich das noch nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Kannst du mir vllt. bei dem in der whileschleife etwas behilflich sein?<br />
Desweiteren sind mir noch zwei andere Fragen gekommen:</p>
<ol>
<li>Wenn ich ein einem Tag noch &quot;Untertags&quot; hab, kann ich die automatisch mit entfernen?</li>
<li>Ginge es vllt. einfacher, statt zu löschen die Tags die man braucht inkl. Inhalt in eine andere Datei zu packen?</li>
</ol>
<p>Danke schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420034</guid><dc:creator><![CDATA[mo111]]></dc:creator><pubDate>Thu, 13 Dec 2007 15:44:00 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmte Bereiche aus XML-Datei entfernen on Thu, 13 Dec 2007 18:41:27 GMT]]></title><description><![CDATA[<p>Ich nochmal...<br />
Hab' mir jetzt doch mal TinyXML runtergeladen, in der Hoffnung damit ans Ziel zu kommen... Aber ich muss ehrlich sagen, da blicke ich überhaupt nicht durch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Ich habe das Gefühl, dass nur mein Quelltext unübersichtlicher wird und komme ansonsten gar nicht vorran... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Kann vllt. jemand mal kurz nen Beispielcode posten, wie man mit TinyXML Quelltext aus einer Datei einliest, dort Tags/Zeilen löscht und anschließend das ganze in eine neue Datei speichert? Wär echt superlieb ich bin hier schon am verzweifeln gerade.<br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420141</guid><dc:creator><![CDATA[mo111]]></dc:creator><pubDate>Thu, 13 Dec 2007 18:41:27 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmte Bereiche aus XML-Datei entfernen on Fri, 14 Dec 2007 10:43:07 GMT]]></title><description><![CDATA[<p>ich hätte dir gerne ein stück code gepostet, leider lässt der so toll funktionierende spamfilter des forums mich nicht. tut mir leid.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420418</guid><dc:creator><![CDATA[der mob]]></dc:creator><pubDate>Fri, 14 Dec 2007 10:43:07 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmte Bereiche aus XML-Datei entfernen on Fri, 14 Dec 2007 10:49:02 GMT]]></title><description><![CDATA[<p><a href="http://rafb.net/p/pCQxBJ95.html" rel="nofollow">http://rafb.net/p/pCQxBJ95.html</a></p>
<p>musste es da reinstellen, irgendwas an dem code mag der spamfilter hier nicht.<br />
code ist so aus dem kopf geschrieben, keine garantie dass das so auch funktioniert. sollte aber zumindest so ähnlich gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420425</guid><dc:creator><![CDATA[der mob]]></dc:creator><pubDate>Fri, 14 Dec 2007 10:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmte Bereiche aus XML-Datei entfernen on Fri, 14 Dec 2007 11:20:27 GMT]]></title><description><![CDATA[<p>der mob schrieb:</p>
<blockquote>
<p>...irgendwas an dem code mag der spamfilter hier nicht...</p>
</blockquote>
<p>Registriere dich, dann klappt das auch. Der Spamfilter hat einen großen Sinn, da vor allem unregistrierte hier gerne spammen.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420438</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 14 Dec 2007 11:20:27 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmte Bereiche aus XML-Datei entfernen on Fri, 14 Dec 2007 12:37:28 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>Registriere dich, dann klappt das auch. Der Spamfilter hat einen großen Sinn, da vor allem unregistrierte hier gerne spammen.</p>
</blockquote>
<p>mag ja sein, aber er ist trotzdem schon seit monaten kaputt.</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-197413.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-197413.html</a><br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-194810.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-194810.html</a></p>
<p>--<br />
lustigerweise tritt der fehler gerade jetzt bei diesem posting auf. ich versuche ihn mal zu umgehen indem ich einfach sinnlosen text hier hinschreibe.<br />
tja, das hat noch nicht gereicht, also schreibe ich noch mehr text hier hin.<br />
so langsam glaube ich, dass die unregs so weggemobbt werden sollen. könnt ihr nicht einfach das posten für unregs verbieten? das artet nämlich so langsam echt in pure verarsche aus.<br />
so, ich hoffe das reicht jetzt für den beknackten filter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420506</guid><dc:creator><![CDATA[der mob]]></dc:creator><pubDate>Fri, 14 Dec 2007 12:37:28 GMT</pubDate></item></channel></rss>