<?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[Delphi Code Beispiel in CBuilder umsetzen]]></title><description><![CDATA[<p>Tach.</p>
<p>Ich habe mir eine XML Komponente geholt und möchte gern ein Delphi Beispiel in CBuilder umsetzen. Habe da aber ein verständnis Problem.</p>
<p>//<strong>Attr</strong> ist eine StringList</p>
<p>DELPHI<br />
CONSTRUCTOR TElementNode.Create (TheContent : STRING; TheAttr : TNvpList);<br />
...<br />
<strong>Attr</strong>.Add (TNvpNode (TheAttr [i]).Name + '=' + TNvpNode (TheAttr [i]).Value);</p>
<p>CBUILDER<br />
TElementNode(AnsiString TheContent, TNvpList *TheAttr)<br />
...<br />
<strong>Attr</strong>-&gt;Add(TNvpNode(TheAttr-&gt;Items[i]).Name + &quot;=&quot; + TNvpNode(TheAttr-&gt;Items[i]).Value);</p>
<p>FEHLERMELDUNG</p>
<blockquote>
<p>[C++ Fehler] Unit1.cpp(63): E2285 Keine Übereinstimmung für 'TNvpNode::TNvpNode(void <em>)' gefunden<br />
[C++ Fehler] Unit1.cpp(63): E2459 Klassen im VCL-Stil müssen mit dem Operator new erstellt werden.<br />
[C++ Fehler] Unit1.cpp(63): E2459 Klassen im VCL-Stil müssen mit dem Operator new erstellt werden.<br />
[C++ Fehler] Unit1.cpp(63): E2294 Auf linker Seite der Struktur ist . oder .</em> erforderlich.</p>
</blockquote>
<p>Ich werd aus dem Delphi Zeugs nicht ganz schlau. Er erwartet in TNvpNode() einen string, aber TNvpList welches drinsteht ist kein String.</p>
<p>Falls wer das aufklären kann wäre echt toll. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Delphi Source so aus:</p>
<pre><code>(*
  TNvpNode  = CLASS                     // Name-Value Pair Node
                 Name  : STRING;
                 Value : STRING;
                 CONSTRUCTOR Create (TheName : STRING = ''; TheValue : STRING = '');
              END;

  TNvpList  = CLASS (TObjectList)       // Name-Value Pair List
                PROCEDURE Add   (Node  : TNvpNode);
                FUNCTION  Node  (Name  : STRING)  : TNvpNode;  OVERLOAD;
                FUNCTION  Node  (Index : INTEGER) : TNvpNode;  OVERLOAD;
                FUNCTION  Value (Name  : STRING)  : STRING;    OVERLOAD;
                FUNCTION  Value (Index : INTEGER) : STRING;    OVERLOAD;
                FUNCTION  Name  (Index : INTEGER) : STRING;
              END;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/162769/delphi-code-beispiel-in-cbuilder-umsetzen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 21:43:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/162769.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Oct 2006 09:08:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Delphi Code Beispiel in CBuilder umsetzen on Mon, 23 Oct 2006 09:08:01 GMT]]></title><description><![CDATA[<p>Tach.</p>
<p>Ich habe mir eine XML Komponente geholt und möchte gern ein Delphi Beispiel in CBuilder umsetzen. Habe da aber ein verständnis Problem.</p>
<p>//<strong>Attr</strong> ist eine StringList</p>
<p>DELPHI<br />
CONSTRUCTOR TElementNode.Create (TheContent : STRING; TheAttr : TNvpList);<br />
...<br />
<strong>Attr</strong>.Add (TNvpNode (TheAttr [i]).Name + '=' + TNvpNode (TheAttr [i]).Value);</p>
<p>CBUILDER<br />
TElementNode(AnsiString TheContent, TNvpList *TheAttr)<br />
...<br />
<strong>Attr</strong>-&gt;Add(TNvpNode(TheAttr-&gt;Items[i]).Name + &quot;=&quot; + TNvpNode(TheAttr-&gt;Items[i]).Value);</p>
<p>FEHLERMELDUNG</p>
<blockquote>
<p>[C++ Fehler] Unit1.cpp(63): E2285 Keine Übereinstimmung für 'TNvpNode::TNvpNode(void <em>)' gefunden<br />
[C++ Fehler] Unit1.cpp(63): E2459 Klassen im VCL-Stil müssen mit dem Operator new erstellt werden.<br />
[C++ Fehler] Unit1.cpp(63): E2459 Klassen im VCL-Stil müssen mit dem Operator new erstellt werden.<br />
[C++ Fehler] Unit1.cpp(63): E2294 Auf linker Seite der Struktur ist . oder .</em> erforderlich.</p>
</blockquote>
<p>Ich werd aus dem Delphi Zeugs nicht ganz schlau. Er erwartet in TNvpNode() einen string, aber TNvpList welches drinsteht ist kein String.</p>
<p>Falls wer das aufklären kann wäre echt toll. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Delphi Source so aus:</p>
<pre><code>(*
  TNvpNode  = CLASS                     // Name-Value Pair Node
                 Name  : STRING;
                 Value : STRING;
                 CONSTRUCTOR Create (TheName : STRING = ''; TheValue : STRING = '');
              END;

  TNvpList  = CLASS (TObjectList)       // Name-Value Pair List
                PROCEDURE Add   (Node  : TNvpNode);
                FUNCTION  Node  (Name  : STRING)  : TNvpNode;  OVERLOAD;
                FUNCTION  Node  (Index : INTEGER) : TNvpNode;  OVERLOAD;
                FUNCTION  Value (Name  : STRING)  : STRING;    OVERLOAD;
                FUNCTION  Value (Index : INTEGER) : STRING;    OVERLOAD;
                FUNCTION  Name  (Index : INTEGER) : STRING;
              END;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1159332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159332</guid><dc:creator><![CDATA[Stevanus]]></dc:creator><pubDate>Mon, 23 Oct 2006 09:08:01 GMT</pubDate></item><item><title><![CDATA[Reply to Delphi Code Beispiel in CBuilder umsetzen on Mon, 23 Oct 2006 09:19:06 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Du must die Elemente einer StringList immer mit dem Pfeiloperator ansprechen. Vermutlich auch bei dem cast nach TNvpNode. Ich würde so in C++ umsetzen :</p>
<pre><code class="language-cpp">TNvpNode* node = static_cast&lt;TNvpNode*&gt;(TheAttr [i]);
Attr-&gt;Add (Node-&gt;Name + '=' + Node-&gt;Value);
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159340</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 23 Oct 2006 09:19:06 GMT</pubDate></item><item><title><![CDATA[Reply to Delphi Code Beispiel in CBuilder umsetzen on Mon, 23 Oct 2006 09:58:39 GMT]]></title><description><![CDATA[<p>Vielen vielen vielen Dank! Daran habe ich jetzt echt lang gesessen und du knallst die Lösung so hin <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>Scheint zweierlei Dinge in CBuilder nicht zu funktionieren. Einmal das er Klassen direkt verarbeitet und Delphi benötigt scheinbar auch nicht die Items Eigenschaft bei Komponenten, sondern nur den Index.</p>
<p>Hier nochmal etwas korrigiert, für die die es vielleicht nachvollziehen wollen:</p>
<pre><code class="language-cpp">TNvpNode *node = static_cast&lt;TNvpNode*&gt;(TheAttr-&gt;Items[i]);
Attr-&gt;Add (node-&gt;Name + '=' + node-&gt;Value);
</code></pre>
<p>Jetzt habe ich aber gleich ne neue Frage <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Diese bezieht sich auf das:<br />
EN := TElementNode.Create</p>
<p>welches ich mit<br />
EN = new TElementNode</p>
<p>mache. Frage ist, ist das so richtig?</p>
<p>Falls ja, müsste ich nach der switch Abfrage ein &quot;delete EN;&quot; setzen.<br />
Mich wunderts nur, das in Delphi kein Free gemacht wird, daher glaube ich,<br />
das ich es falsch mache <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>DELPHI</p>
<pre><code>VAR
    Node : TTreeNode;
    EN   : TElementNode;
  BEGIN
    WHILE XmlParser.Scan DO BEGIN
      Node := NIL;
      CASE XmlParser.CurPartType OF
        ptXmlProlog : BEGIN
                        Node := TrvDoc.Items.AddChild (Parent, '&lt;?xml?&gt;');
                        EN := TElementNode.Create (StrSFPas (XmlParser.CurStart, XmlParser.CurFinal), NIL);
</code></pre>
<p>CBUILDER</p>
<pre><code class="language-cpp">TTreeNode *Node;
    TElementNode *EN;

    while (XmlParser-&gt;Scan())
    {
        Node = NULL;
        switch (XmlParser-&gt;CurPartType)
        {
            ptXmlProlog :
                        Node = TrvDoc-&gt;Items-&gt;AddChild (Parent, &quot;&lt;?xml?&gt;&quot;);
                        EN = new TElementNode(StrSFPas (XmlParser-&gt;CurStart, XmlParser-&gt;CurFinal), NULL);
                        Node-&gt;Data = EN;
                        break;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1159377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159377</guid><dc:creator><![CDATA[Stevanus]]></dc:creator><pubDate>Mon, 23 Oct 2006 09:58:39 GMT</pubDate></item><item><title><![CDATA[Reply to Delphi Code Beispiel in CBuilder umsetzen on Mon, 23 Oct 2006 10:09:50 GMT]]></title><description><![CDATA[<p>Ich bin doof, natürlich darf kein delete/free gemacht werden, sonst würd ich den Eintrag ja wieder löschen <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/1159382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159382</guid><dc:creator><![CDATA[Stevanus]]></dc:creator><pubDate>Mon, 23 Oct 2006 10:09:50 GMT</pubDate></item><item><title><![CDATA[Reply to Delphi Code Beispiel in CBuilder umsetzen on Mon, 23 Oct 2006 10:11:39 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>Scheint zweierlei Dinge in CBuilder nicht zu funktionieren. Einmal das er Klassen direkt verarbeitet und Delphi benötigt scheinbar auch nicht die Items Eigenschaft bei Komponenten, sondern nur den Index.</p>
</blockquote>
<p>Was verstehst du unter direkt verarbeiten?</p>
<blockquote>
<p>Diese bezieht sich auf das:<br />
EN := TElementNode.Create</p>
<p>welches ich mit<br />
EN = new TElementNode</p>
<p>mache. Frage ist, ist das so richtig?</p>
<p>Falls ja, müsste ich nach der switch Abfrage ein &quot;delete EN;&quot; setzen.<br />
Mich wunderts nur, das in Delphi kein Free gemacht wird, daher glaube ich,</p>
</blockquote>
<p>Ja die Übersetzung ist richtig. Das delete muß dann grundsätzlich auch an passender Stelle kommen. Allerdings vermute ich, das mit dieser Zeile</p>
<blockquote>
<p>Node-&gt;Data = EN;</p>
</blockquote>
<p>dafür gesorgt wird, das Node die Instanz in Data löscht, so das du nicht selber das delete machen must.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159386</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 23 Oct 2006 10:11:39 GMT</pubDate></item><item><title><![CDATA[Reply to Delphi Code Beispiel in CBuilder umsetzen on Mon, 23 Oct 2006 16:35:12 GMT]]></title><description><![CDATA[<p>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>
<p>Muss man dann eigentlich explizit bei Programmende TreeView-&gt;Items-&gt;Clear(); aufrufen um den Speicher &quot;freizugeben&quot; oder obliegt das der Programm Verwaltung selbst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159756</guid><dc:creator><![CDATA[Stevanus]]></dc:creator><pubDate>Mon, 23 Oct 2006 16:35:12 GMT</pubDate></item><item><title><![CDATA[Reply to Delphi Code Beispiel in CBuilder umsetzen on Mon, 23 Oct 2006 16:42:18 GMT]]></title><description><![CDATA[<p>Verdammt ich war schon wieder zu schnell und habe eine Frage vergessen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>In der Original Quelle steht:</p>
<p>im Konstruktor:<br />
INHERITED Create;</p>
<p>und im Destruktor:<br />
INHERITED Destroy;</p>
<p>Was genau macht das und was müsste ich im CBuilder dafür eintragen?</p>
<pre><code>CONSTRUCTOR TElementNode.Create (TheContent : STRING; TheAttr : TNvpList);
VAR
  I : INTEGER;
BEGIN
  INHERITED Create;
  Content := TheContent;
  Attr    := TStringList.Create;
  IF TheAttr &lt;&gt; NIL THEN
    FOR I := 0 TO TheAttr.Count-1 DO
      Attr.Add (TNvpNode (TheAttr [I]).Name + '=' + TNvpNode (TheAttr [I]).Value);
END;

DESTRUCTOR TElementNode.Destroy;
BEGIN
  Attr.Free;
  INHERITED Destroy;
END;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1159760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159760</guid><dc:creator><![CDATA[Stevanus]]></dc:creator><pubDate>Mon, 23 Oct 2006 16:42:18 GMT</pubDate></item><item><title><![CDATA[Reply to Delphi Code Beispiel in CBuilder umsetzen on Mon, 23 Oct 2006 17:26:06 GMT]]></title><description><![CDATA[<p>Was du vor dir stehen hast ist der Konstruktor und der Destruktor. Inhereted bedeutet, dass die Methode der Vorfahrklasse aufgerufen wird. Was an dieser Stelle auch logisch ist, denn in einem Konstruktor möchte man am Anfang die Methode der Vorklasse ausgeführt haben, in einem Destruktor dagegen der Destruktor der Vorfahrklasse zum Schluss aufgerufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159796</guid><dc:creator><![CDATA[coder24h]]></dc:creator><pubDate>Mon, 23 Oct 2006 17:26:06 GMT</pubDate></item><item><title><![CDATA[Reply to Delphi Code Beispiel in CBuilder umsetzen on Mon, 23 Oct 2006 17:29:03 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>Muss man dann eigentlich explizit bei Programmende TreeView-&gt;Items-&gt;Clear(); aufrufen um den Speicher &quot;freizugeben&quot; oder obliegt das der Programm Verwaltung selbst?</p>
</blockquote>
<p>Das macht das TreeView-Control schon alleine, wenn es selber gelösacht wird. Und das wird gelöscht wenn sein Owner, das Form gelöscht wird. Und das wird gelöscht, wenn die Anwendung geschlossen wird. Das alles unter der Annahme, das du die Verwaltung der Controls dem Objektinspektor überläßt bzw. die Owner manuell entsprechend setzt.</p>
<blockquote>
<p>In der Original Quelle steht:</p>
<p>im Konstruktor:<br />
INHERITED Create;</p>
<p>und im Destruktor:<br />
INHERITED Destroy;</p>
<p>Was genau macht das und was müsste ich im CBuilder dafür eintragen?</p>
</blockquote>
<p>Das erste ist der Standardkonstruktor, das zweite der Destruktor.<br />
Arbeite am besten mal ein <a href="http://tutorial.schornboeck.net/oop.htm" rel="nofollow">Tutorial zum Thema OOP</a> in C++ durch, sonst kommst du nicht weiter.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159802</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 23 Oct 2006 17:29:03 GMT</pubDate></item><item><title><![CDATA[Reply to Delphi Code Beispiel in CBuilder umsetzen on Mon, 23 Oct 2006 19:05:28 GMT]]></title><description><![CDATA[<p>Danke für eure Hilfe. Mit standard Klassen arbeite ich schon ne weile, aber dieses &quot;INHERITED&quot; war mir bisher nicht bekannt. Finde es auch nicht imk Tutorial.</p>
<p>Verstehs aber immernoch nicht, da die Klasse nicht von einer anderen abgeleitet ist. Ich habe über google die Quelle sogar gefunden:</p>
<p><a href="http://www.koders.com/delphi/fidE30E3DCAE230F1189DEFB34F49907FEDC439837D.aspx" rel="nofollow">http://www.koders.com/delphi/fidE30E3DCAE230F1189DEFB34F49907FEDC439837D.aspx</a></p>
<p>Ab Zeile 95. Mein Problem ist nämlich das das TreeView immer nur die selbe Zeile ausgibt und ich wüsst jetzt gern obs an diesem &quot;INHERITED&quot; hängt oder doch ganz woanders dran. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159877</guid><dc:creator><![CDATA[Stevanus]]></dc:creator><pubDate>Mon, 23 Oct 2006 19:05:28 GMT</pubDate></item><item><title><![CDATA[Reply to Delphi Code Beispiel in CBuilder umsetzen on Mon, 23 Oct 2006 19:33:27 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>Danke für eure Hilfe. Mit standard Klassen arbeite ich schon ne weile, aber dieses &quot;INHERITED&quot; war mir bisher nicht bekannt. Finde es auch nicht imk Tutorial.</p>
</blockquote>
<p>Nein das Wort findest du natürlich nicht in dem Tutorial. Denn das ist über Standard-C++, und das Wort ist Delphi-spezifisch.</p>
<p>Ich kenn mich mit der Delphi-Syntax nicht sus, aber ich vermute das ohne Angabe einer Basisklasse dort alle Klassen von TObjekt abgeleitet sind, und deshalb sich das INHERIT auf den Destruktor von TObject beziehen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159905</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 23 Oct 2006 19:33:27 GMT</pubDate></item><item><title><![CDATA[Reply to Delphi Code Beispiel in CBuilder umsetzen on Mon, 23 Oct 2006 20:38:14 GMT]]></title><description><![CDATA[<p>Also etwas VCL spezifisches. Es besteht jetzt nur weiterhin die dumme Frage, ob dieses &quot;inherited&quot; irgendwie für mich relevant ist und falls ja wie das in CBuilder auszusehen hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>Weil in der Function (184)<br />
&quot;PROCEDURE TFrmMain.FillTree (XmlParser : TXmlParser);&quot;</p>
<p>welche ich für meinen CBuilder-Code umgeschrieben habe, nur '&lt;?xml?&gt;' im TreeView sehr oft aufgelistet wird und ich mich jetzt natürlich frage warum.</p>
<p>Naja ich schau morgen nochmal frisch drauf, vielleicht fällt es mir dann wie Schuppen aus den Augen <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159945</guid><dc:creator><![CDATA[Stevanus]]></dc:creator><pubDate>Mon, 23 Oct 2006 20:38:14 GMT</pubDate></item></channel></rss>