<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: XML разбор параметров на Си</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/5492.html</link>
    <description>Есть ли средства для разбора параметров тегов XML на языке Си? Как это лучше всего сделать?</description>

<item>
    <title>XML разбор параметров на Си (ap)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/5492.html#13</link>
    <pubDate>Sat, 29 Jul 2006 06:40:12 GMT</pubDate>
    <description>&amp;gt;вместо g++ &lt;br&gt;&amp;gt;gcc &#096;xml2-config --cflags --libs&#096; xml.c -o xml &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;P.S Код писался на и проверялся на freebsd6.0 6.1 &lt;br&gt;&lt;br&gt;Большое спасибо за код. В компилировании уже разобрался.</description>
</item>

<item>
    <title>XML разбор параметров на Си (Steck)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/5492.html#12</link>
    <pubDate>Sat, 29 Jul 2006 04:05:27 GMT</pubDate>
    <description>вместо g++&lt;br&gt;gcc &#096;xml2-config --cflags --libs&#096; xml.c -o xml&lt;br&gt;&lt;br&gt;P.S Код писался на и проверялся на freebsd6.0 6.1</description>
</item>

<item>
    <title>XML разбор параметров на Си (ap)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/5492.html#11</link>
    <pubDate>Wed, 26 Jul 2006 11:18:09 GMT</pubDate>
    <description>&amp;gt;Исправил путь на /usr/include/libxml2/libxml/. Теперь выдает кучу ошибок. &lt;br&gt;&amp;gt;/usr/include/libxml2/libxml/parser.h:15:31: libxml/xmlversion.h: No such file or directory &lt;br&gt;&amp;gt;/usr/include/libxml2/libxml/parser.h:16:25: libxml/tree.h: No such file or directory &lt;br&gt;&amp;gt;/usr/include/libxml2/libxml/parser.h:17:25: libxml/dict.h: No such file or directory &lt;br&gt;&amp;gt;/usr/include/libxml2/libxml/parser.h:18:25: libxml/hash.h: No such file or directory &lt;br&gt;&amp;gt;/usr/include/libxml2/libxml/parser.h:19:26: libxml/valid.h: No such file or directory &lt;br&gt;&amp;gt;/usr/include/libxml2/libxml/parser.h:20:29: libxml/entities.h: No such file or directory &lt;br&gt;&amp;gt;/usr/include/libxml2/libxml/parser.h:21:29: libxml/xmlerror.h: No such file or directory &lt;br&gt;&amp;gt;/usr/include/libxml2/libxml/parser.h:22:30: libxml/xmlstring.h: No such file or directory &lt;br&gt;&amp;gt;In file included from xml.cpp:3: &lt;br&gt;&amp;gt;/usr/include/libxml2/libxml/parser.h:52: error: typedef &#096;xmlParserInputDeallocate&apos; is initialized (use __typeof__ instead) &lt;br&gt;&amp;gt;/usr/include/libxml2/libxml/parser.h:52: error: &#096;xmlChar&apos; wa</description>
</item>

<item>
    <title>XML разбор параметров на Си (ap)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/5492.html#10</link>
    <pubDate>Wed, 26 Jul 2006 09:51:25 GMT</pubDate>
    <description>Исправил путь на /usr/include/libxml2/libxml/. Теперь выдает кучу ошибок.&lt;br&gt;/usr/include/libxml2/libxml/parser.h:15:31: libxml/xmlversion.h: No such file or directory&lt;br&gt;/usr/include/libxml2/libxml/parser.h:16:25: libxml/tree.h: No such file or directory&lt;br&gt;/usr/include/libxml2/libxml/parser.h:17:25: libxml/dict.h: No such file or directory&lt;br&gt;/usr/include/libxml2/libxml/parser.h:18:25: libxml/hash.h: No such file or directory&lt;br&gt;/usr/include/libxml2/libxml/parser.h:19:26: libxml/valid.h: No such file or directory&lt;br&gt;/usr/include/libxml2/libxml/parser.h:20:29: libxml/entities.h: No such file or directory&lt;br&gt;/usr/include/libxml2/libxml/parser.h:21:29: libxml/xmlerror.h: No such file or directory&lt;br&gt;/usr/include/libxml2/libxml/parser.h:22:30: libxml/xmlstring.h: No such file or directory&lt;br&gt;In file included from xml.cpp:3:&lt;br&gt;/usr/include/libxml2/libxml/parser.h:52: error: typedef &#096;xmlParserInputDeallocate&apos; is initialized (use __typeof__ instead)&lt;br&gt;/usr/include/libxml2/libxml/parser.h:52: error: &#096;xmlChar&apos; was not declared in this </description>
</item>

<item>
    <title>XML разбор параметров на Си (ap)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/5492.html#9</link>
    <pubDate>Wed, 26 Jul 2006 09:46:32 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt;Никто не может привести премер для данного случая? Я много примеров из &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;документации видел, но пока малопонятно (с xml раньше вообще не работал). &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;&amp;gt;#include &amp;lt;libxml/parser.h&amp;gt;&lt;br&gt;&amp;gt;#define CONF &quot;/home/steck/file.xml&quot; &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;int main(int argc, char *argv&#091;&#093;) &lt;br&gt;&amp;gt;&#123; &lt;br&gt;&amp;gt;xmlNodePtr cur; &lt;br&gt;&amp;gt;xmlDocPtr doc; &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; doc = xmlParseFile(CONF); &lt;br&gt;&amp;gt;  if(doc == NULL) &lt;br&gt;&amp;gt;  &#123; &lt;br&gt;&amp;gt;    fprintf(stderr,&quot;Error parsing file&#092;n&quot;); &lt;br&gt;&amp;gt;    return -1; &lt;br&gt;&amp;gt;  &#125; &lt;br&gt;&amp;gt;  cur = xmlDocGetRootElement(doc); &lt;br&gt;&amp;gt;  if(xmlStrcmp(cur-&amp;gt;name,(const xmlChar *)&quot;request&quot;))&lt;br&gt;&amp;gt;    return -1; &lt;br&gt;&amp;gt;  cur = cur-&amp;gt;xmlChildrenNode;&lt;br&gt;&amp;gt;  while(cur != NULL) &lt;br&gt;&amp;gt;  &#123; &lt;br&gt;&amp;gt;      if((!xmlStrcmp(cur-&amp;gt;name,(const xmlChar *)&quot;header&quot;)))&lt;br&gt;&amp;gt;   &#123; &lt;br&gt;&amp;gt;     printf(&quot;Section &#092;&quot;header&#092;&quot;&#092;n&quot;); &lt;br&gt;&amp;gt;     printf(&quot;action = &#037;s&#092;n&quot;,xmlGetProp(cur,&quot;action&quot;)); &lt;br&gt;&amp;gt;     printf(&quot;dealer = &#037;s&#092;n&quot;,xmlGetProp(cur,&quot;dealer&quot;)); &lt;br&gt;&amp;gt;   &#125; &lt;br&gt;&amp;gt; if((!xmlStrcmp(cur-&amp;gt;name,(const xmlChar *)&quot;account&quot;)))&lt;br&gt;&amp;gt;        &#123; &lt;br&gt;&amp;gt;     printf(&quot;Section &#092;&quot;account&#092;&quot;&#092;n&quot;); &lt;br&gt;&amp;gt;    printf(&quot;service = &#037;s&#092;n&quot;,xmlG</description>
</item>

<item>
    <title>XML разбор параметров на Си (Steck)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/5492.html#8</link>
    <pubDate>Mon, 26 Jun 2006 23:54:06 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Никто не может привести премер для данного случая? Я много примеров из &lt;br&gt;&amp;gt;&amp;gt;документации видел, но пока малопонятно (с xml раньше вообще не работал). &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;#include &amp;lt;libxml/parser.h&amp;gt;&lt;br&gt;#define CONF &quot;/home/steck/file.xml&quot;&lt;br&gt;&lt;br&gt;int main(int argc, char *argv&#091;&#093;)&lt;br&gt;&#123;&lt;br&gt;xmlNodePtr cur;&lt;br&gt;xmlDocPtr doc;&lt;br&gt;&lt;br&gt; doc = xmlParseFile(CONF);&lt;br&gt;  if(doc == NULL)&lt;br&gt;  &#123;&lt;br&gt;    fprintf(stderr,&quot;Error parsing file&#092;n&quot;);&lt;br&gt;    return -1;&lt;br&gt;  &#125;&lt;br&gt;  cur = xmlDocGetRootElement(doc);&lt;br&gt;  if(xmlStrcmp(cur-&amp;gt;name,(const xmlChar *)&quot;request&quot;))&lt;br&gt;    return -1;&lt;br&gt;  cur = cur-&amp;gt;xmlChildrenNode;&lt;br&gt;  while(cur != NULL)&lt;br&gt;  &#123;&lt;br&gt;      if((!xmlStrcmp(cur-&amp;gt;name,(const xmlChar *)&quot;header&quot;)))&lt;br&gt;&#123;&lt;br&gt;printf(&quot;Section &#092;&quot;header&#092;&quot;&#092;n&quot;);&lt;br&gt;printf(&quot;action = &#037;s&#092;n&quot;,xmlGetProp(cur,&quot;action&quot;));&lt;br&gt;printf(&quot;dealer = &#037;s&#092;n&quot;,xmlGetProp(cur,&quot;dealer&quot;));&lt;br&gt;&#125;&lt;br&gt; if((!xmlStrcmp(cur-&amp;gt;name,(const xmlChar *)&quot;account&quot;)))&lt;br&gt;        &#123;&lt;br&gt;printf(&quot;Section &#092;&quot;account&#092;&quot;&#092;n&quot;);&lt;br&gt;printf(&quot;service = &#037;s&#092;n&quot;,xmlGetProp(cur,&quot;service&quot;));&lt;br&gt;printf(&quot;id = &#037;s&#092;n&quot;,xmlGetProp</description>
</item>

<item>
    <title>XML разбор параметров на Си (DeadMustdie)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/5492.html#7</link>
    <pubDate>Wed, 21 Jun 2006 14:41:04 GMT</pubDate>
    <description>&amp;gt;Никто не может привести премер для данного случая? Я много примеров из &lt;br&gt;&amp;gt;документации видел, но пока малопонятно (с xml раньше вообще не работал). &lt;br&gt;&lt;br&gt;Понятнее, чем в семплах, вряд ли будет.&lt;br&gt;&lt;br&gt;Собственно, семпл, печатает элементы XML-документа:&lt;br&gt;&lt;br&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;#include &quot;expat.h&quot;&lt;br&gt;&lt;br&gt;static void XMLCALL&lt;br&gt;startElement(void *userData, const char *name, const char **atts)&lt;br&gt;&#123;&lt;br&gt;  int i;&lt;br&gt;  int *depthPtr = userData;&lt;br&gt;  for (i = 0; i &amp;lt; *depthPtr; i++)&lt;br&gt;    putchar(&apos;&#092;t&apos;);&lt;br&gt;  puts(name);&lt;br&gt;  *depthPtr += 1;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;static void XMLCALL&lt;br&gt;endElement(void *userData, const char *name)&lt;br&gt;&#123;&lt;br&gt;  int *depthPtr = userData;&lt;br&gt;  *depthPtr -= 1;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;int&lt;br&gt;main(int argc, char *argv&#091;&#093;)&lt;br&gt;&#123;&lt;br&gt;  char buf&#091;BUFSIZ&#093;;&lt;br&gt;  XML_Parser parser = XML_ParserCreate(NULL);&lt;br&gt;  int done;&lt;br&gt;  int depth = 0;&lt;br&gt;  XML_SetUserData(parser, &amp;depth);&lt;br&gt;  XML_SetElementHandler(parser, startElement, endElement);&lt;br&gt;  do &#123;&lt;br&gt;    size_t len = fread(buf, 1, sizeof(buf), stdin);&lt;br&gt;    done = len &amp;lt; sizeof(buf);&lt;br&gt;    if (XML_Parse(parser, buf, len, done) == XML_STATUS_ERR</description>
</item>

<item>
    <title>XML разбор параметров на Си (ap)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/5492.html#6</link>
    <pubDate>Tue, 20 Jun 2006 09:09:36 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Есть ли средства для разбора параметров тегов XML на языке Си? Как &lt;br&gt;&amp;gt;&amp;gt;это лучше всего сделать? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;libxml2 тоже ничего, но я как-то больже expat уважаю. &lt;br&gt;&amp;gt;http://expat.sourceforge.net/ &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Единственно что придется немножко поплясать для обработки &lt;br&gt;&amp;gt;всяких разных кодировок. man 3 iconv &lt;br&gt;Никто не может привести премер для данного случая? Я много примеров из документации видел, но пока малопонятно (с xml раньше вообще не работал).&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>XML разбор параметров на Си (ap)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/5492.html#5</link>
    <pubDate>Tue, 20 Jun 2006 05:35:59 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt;Есть ли средства для разбора параметров тегов XML на языке Си? Как &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;это лучше всего сделать? &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;libxml2? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Помогите пожалуйста со следующей задачей (я новичек в XML): &lt;br&gt;&amp;gt;есть следующий фрагмент XML-кода: &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;lt;request&amp;gt;&lt;br&gt;&amp;gt;&amp;lt;header action=&amp;#8221;payment&amp;#8221; dealer=&amp;#8221;mCash&amp;#8221;/&amp;gt;&lt;br&gt;&amp;gt;&amp;lt;account service=&amp;#8221;0&amp;#8221; id=&amp;#8221;Иванов Иван&amp;#8221; id2=&amp;#8221;123456879&amp;#8221; id3=&amp;#8221;&amp;#8221; id4=&amp;#8221;&amp;#8221; /&amp;gt;&lt;br&gt;&amp;gt;&amp;lt;operation id=&amp;#8221;7456646&amp;#8221; sum=&amp;#8221;9.45&amp;#8221; point=&amp;#8221;350&amp;#8221; check=&amp;#8221;17235&amp;#8221;/&amp;gt;&lt;br&gt;&amp;gt;&amp;lt;/request&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Мне нужно на Си (в Linux) прочитать параметры action,dealer,account service,id,operation id итд. &lt;br&gt;&amp;gt;Можете привести небольшой примерчик с использованием библиотеки libxml2? &lt;br&gt;&lt;br&gt;Никто не может привести премер для данного случая? Я много примеров из документации видел, но пока малопонятно (с xml раньше вообще не работал).&lt;br&gt;</description>
</item>

</channel>
</rss>
