<?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[Schlechte Performance von MSXML]]></title><description><![CDATA[<p>Morgen,</p>
<p>also ich habe folgenden Code, um eine XML-Datei auszulesen und Node-Texte in einem vector zu speichern:</p>
<pre><code class="language-cpp">// XMLDOMDocument erzeugen (&quot;MSXML2.DOMDocument.6.0&quot;)
// XML-Datei laden

MSXML2::IXMLDOMNodeListPtr pNodeList = pXmlDocument-&gt;getElementsByTagName(L&quot;Word&quot;);
long length, i;
_ASSERTE(SUCCEEDED(pNodeList-&gt;get_length(&amp;length)));
m_words.reserve(length); // vector &lt;wstring&gt; m_words

wstring wTheNodeText;
_variant_t var;
IXMLDOMNodePtr pNode;

for ( i = 0; i &lt; length; i++) 
{
  pNode = pNodeList-&gt;nextNode();
  _ASSERTE(SUCCEEDED( pNode-&gt;get_nodeTypedValue(&amp;var)));
  wTheNodeText = var.bstrVal;
  m_words.push_back(wTheNodeText); 
}
</code></pre>
<p>Die XML-Datei ist folgendermaßen aufgebaut:</p>
<pre><code>...
&lt;Word&gt;abcd&lt;/Word&gt;
&lt;Word&gt;nochnwort&lt;/Word&gt;
...
</code></pre>
<p>Nun hab ich eine XML-Datei mit 102.000 Wörtern (bzw &quot;Word&quot;-Nodes) für ein Dictionary, was eigentlich nicht viel ist. Die Funktion hat jedoch eine Laufzeit von etwas über 2 Minuten. Kommentier ich die Zeile mit pNode-&gt;get_nodeTypedValue raus, beträgt die Laufzeit 1 Sekunde. Dieser Call zum Bestimmen des Textes scheint also nicht sehr effektiv zu sein. Probiert habe ich es auch schon mit pNode-&gt;get_text, was allerdings auch nicht schneller ist. Hat jemand ne Idee, ob man das irgendwie besser lösen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/215521/schlechte-performance-von-msxml</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 06:55:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/215521.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Jun 2008 08:07:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schlechte Performance von MSXML on Thu, 12 Jun 2008 08:10:58 GMT]]></title><description><![CDATA[<p>Morgen,</p>
<p>also ich habe folgenden Code, um eine XML-Datei auszulesen und Node-Texte in einem vector zu speichern:</p>
<pre><code class="language-cpp">// XMLDOMDocument erzeugen (&quot;MSXML2.DOMDocument.6.0&quot;)
// XML-Datei laden

MSXML2::IXMLDOMNodeListPtr pNodeList = pXmlDocument-&gt;getElementsByTagName(L&quot;Word&quot;);
long length, i;
_ASSERTE(SUCCEEDED(pNodeList-&gt;get_length(&amp;length)));
m_words.reserve(length); // vector &lt;wstring&gt; m_words

wstring wTheNodeText;
_variant_t var;
IXMLDOMNodePtr pNode;

for ( i = 0; i &lt; length; i++) 
{
  pNode = pNodeList-&gt;nextNode();
  _ASSERTE(SUCCEEDED( pNode-&gt;get_nodeTypedValue(&amp;var)));
  wTheNodeText = var.bstrVal;
  m_words.push_back(wTheNodeText); 
}
</code></pre>
<p>Die XML-Datei ist folgendermaßen aufgebaut:</p>
<pre><code>...
&lt;Word&gt;abcd&lt;/Word&gt;
&lt;Word&gt;nochnwort&lt;/Word&gt;
...
</code></pre>
<p>Nun hab ich eine XML-Datei mit 102.000 Wörtern (bzw &quot;Word&quot;-Nodes) für ein Dictionary, was eigentlich nicht viel ist. Die Funktion hat jedoch eine Laufzeit von etwas über 2 Minuten. Kommentier ich die Zeile mit pNode-&gt;get_nodeTypedValue raus, beträgt die Laufzeit 1 Sekunde. Dieser Call zum Bestimmen des Textes scheint also nicht sehr effektiv zu sein. Probiert habe ich es auch schon mit pNode-&gt;get_text, was allerdings auch nicht schneller ist. Hat jemand ne Idee, ob man das irgendwie besser lösen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1527438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1527438</guid><dc:creator><![CDATA[IUnknown]]></dc:creator><pubDate>Thu, 12 Jun 2008 08:10:58 GMT</pubDate></item><item><title><![CDATA[Reply to Schlechte Performance von MSXML on Thu, 12 Jun 2008 09:49:36 GMT]]></title><description><![CDATA[<p>verwende einen streambasierten ansatz, zum beispiel mit einem <a href="http://de.wikipedia.org/wiki/Simple_API_for_XML" rel="nofollow">sax-parser</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1527539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1527539</guid><dc:creator><![CDATA[sachs]]></dc:creator><pubDate>Thu, 12 Jun 2008 09:49:36 GMT</pubDate></item><item><title><![CDATA[Reply to Schlechte Performance von MSXML on Thu, 12 Jun 2008 10:00:14 GMT]]></title><description><![CDATA[<p>hört sich gut an, werd ich mal versuchen, danke <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1527552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1527552</guid><dc:creator><![CDATA[IUnknown]]></dc:creator><pubDate>Thu, 12 Jun 2008 10:00:14 GMT</pubDate></item></channel></rss>