<?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[[gelöst]TinyXml Fehler bei SetValue]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe ein kleines Problem beim Setzen eines Textelements in einer XML Datei.</p>
<p>Ich habe folgenden leeren Tag in der XML Datei:<br />
&lt;ph_res&gt;&lt;/ph_res&gt;</p>
<p>Nun möchte ich über mein eingebundenes TinyXml (vorheriges lesen der gesamten XML Datei klappt einwandfrei) einen Wert für diesen Tag setzen, beispielsweise &quot;55&quot;.</p>
<p>Dazu folgender Quellcode:</p>
<pre><code class="language-cpp">TiXmlDocument doc(pathname)
bool loadOkay = doc.LoadFile();

if (!loadOkay)
{
   std::cout &lt;&lt; doc.ErrorDesc() &lt;&lt; endl;
}
else {

   TiXmlHandle docHandle(&amp;doc);
   TiXmlText* text = docHandle.ChildElement(&quot;ph_res&quot;,0).Text();
   text-&gt;SetValue(&quot;55&quot;);
}
</code></pre>
<p>Wird alles super compiliert, allerdings beim Ausführen der Konsolenanwendung, bricht das Programm ab. Habe den Debugger bemüht, Fehler tritt auf in der von tinyxml mitgelieferten &quot;tinystr.h&quot; und zwar bei:</p>
<pre><code class="language-cpp">//Return capacity of string
size_type capacity () const {return rep_-&gt;capacity;}
</code></pre>
<p>Folgende Fehlermeldung: &quot;Unhandled exception in test.exe: 0xC000000005 Access Violation&quot; für capacity gibt er 0x00405000 zurück, wenn das jemanden irgendwas sagen sollte.</p>
<p>Wäre schön wenn mir jemand auf die Sprünge helfen könnte. Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190824/gelöst-tinyxml-fehler-bei-setvalue</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 20:53:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190824.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 27 Aug 2007 12:18:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [gelöst]TinyXml Fehler bei SetValue on Wed, 29 Aug 2007 12:32:46 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe ein kleines Problem beim Setzen eines Textelements in einer XML Datei.</p>
<p>Ich habe folgenden leeren Tag in der XML Datei:<br />
&lt;ph_res&gt;&lt;/ph_res&gt;</p>
<p>Nun möchte ich über mein eingebundenes TinyXml (vorheriges lesen der gesamten XML Datei klappt einwandfrei) einen Wert für diesen Tag setzen, beispielsweise &quot;55&quot;.</p>
<p>Dazu folgender Quellcode:</p>
<pre><code class="language-cpp">TiXmlDocument doc(pathname)
bool loadOkay = doc.LoadFile();

if (!loadOkay)
{
   std::cout &lt;&lt; doc.ErrorDesc() &lt;&lt; endl;
}
else {

   TiXmlHandle docHandle(&amp;doc);
   TiXmlText* text = docHandle.ChildElement(&quot;ph_res&quot;,0).Text();
   text-&gt;SetValue(&quot;55&quot;);
}
</code></pre>
<p>Wird alles super compiliert, allerdings beim Ausführen der Konsolenanwendung, bricht das Programm ab. Habe den Debugger bemüht, Fehler tritt auf in der von tinyxml mitgelieferten &quot;tinystr.h&quot; und zwar bei:</p>
<pre><code class="language-cpp">//Return capacity of string
size_type capacity () const {return rep_-&gt;capacity;}
</code></pre>
<p>Folgende Fehlermeldung: &quot;Unhandled exception in test.exe: 0xC000000005 Access Violation&quot; für capacity gibt er 0x00405000 zurück, wenn das jemanden irgendwas sagen sollte.</p>
<p>Wäre schön wenn mir jemand auf die Sprünge helfen könnte. Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352977</guid><dc:creator><![CDATA[MRTcharlie]]></dc:creator><pubDate>Wed, 29 Aug 2007 12:32:46 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst]TinyXml Fehler bei SetValue on Mon, 27 Aug 2007 12:45:59 GMT]]></title><description><![CDATA[<p>Geh mal im Callstack ein paar Ebenen nach oben und schau nach, auf welchem Weg du zu dem capacity()-Aufruf gekommen bist. (btw, geht es hier um std::string::capacity()?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353008</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 27 Aug 2007 12:45:59 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst]TinyXml Fehler bei SetValue on Mon, 27 Aug 2007 13:36:33 GMT]]></title><description><![CDATA[<p>Da ich STL nicht verwende nimmt er die TiXmlString-Klasse. capacity stammt also von dort. Wenn ich STL verwende, ist zwar die Fehlermeldung verschwunden aber alles andere funktioniert logischerweise auch nicht mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353051</guid><dc:creator><![CDATA[MRTcharlie]]></dc:creator><pubDate>Mon, 27 Aug 2007 13:36:33 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst]TinyXml Fehler bei SetValue on Tue, 28 Aug 2007 12:02:41 GMT]]></title><description><![CDATA[<p>kleiner Nachtrag,</p>
<p>auf der TinyXML Webseite hat man mir empfohlen, statt der Text(), die ToText() Funktion der FirstChild() Funktion zu verwenden.<br />
Code sieht nun so aus:</p>
<pre><code class="language-cpp">TiXmlHandle docHandle(&amp;doc);
TiXmlText* text = docHandle.ChildElement(&quot;ph_res&quot;,0).FirstChild().ToText();
text-&gt;SetValue(&quot;55&quot;);
</code></pre>
<p>Tritt aber leider noch immer der genannte Fehler auf. <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353762</guid><dc:creator><![CDATA[MRTcharlie]]></dc:creator><pubDate>Tue, 28 Aug 2007 12:02:41 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst]TinyXml Fehler bei SetValue on Tue, 28 Aug 2007 12:12:10 GMT]]></title><description><![CDATA[<p>MRTcharlie schrieb:</p>
<blockquote>
<p>Da ich STL nicht verwende nimmt er die TiXmlString-Klasse. capacity stammt also von dort.</p>
</blockquote>
<p>Hmm, dann solltest du trotzdem mal den Call-Stack unter die Lupe nehmen.</p>
<p>(nur mal als Test: Tritt der Fehler eigentlich auch auf, wenn der betroffene XML-Tag vorher nicht leer war?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353771</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 28 Aug 2007 12:12:10 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst]TinyXml Fehler bei SetValue on Wed, 29 Aug 2007 11:39:12 GMT]]></title><description><![CDATA[<p>Es machte keine Unterschied ob der Tag leer oder was enthalten war. Gab immer den Fehler. Ich glaube letztendlich war die Angabe des Knotens nicht korrekt, obwohl es in der TinyXML Hilfe exakt so beschrieben ist.</p>
<p>Trotzdem habe ich eine Lösung gefunden <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>Ich fange beim Wurzel-Element an und arbeite mich Schritt für Schritt durch Abarbeitung der einzelnen Knoten durch das XML Dokument. Benutze hierfür die NextSibling() Funktion.</p>
<pre><code class="language-cpp">TiXmlNode* node = 0; 
node = doc.RootElement(); // node zeigt jetzt auf Wurzelknoten
node = node-&gt;FirstChild(); 

while(strcmp(node-&gt;Value(), &quot;ph_res&quot;) != 0) //durchsuche Knoten und vergleiche ob mit ph_res übereinstimmt 
{ 
node = node-&gt;NextSibling(); 
} 
// wenn Übereinstimmung

TiXmlElement* element = node-&gt;ToElement(); 
TiXmlText text ( &quot;55&quot;); 
element-&gt;InsertEndChild(text);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1354485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354485</guid><dc:creator><![CDATA[MRTcharlie]]></dc:creator><pubDate>Wed, 29 Aug 2007 11:39:12 GMT</pubDate></item></channel></rss>