<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Perl XML</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7641.html</link>
    <description>Есть XML файл, который нужно разобрать и потом разнести в базу. При попытке разобрать вылетает ошибка &quot;Not an ARRAY reference at test.pl line 24.&quot;. Получается, что есть массив:&lt;br&gt;&lt;br&gt;$data -&amp;gt; &#123;body&#125;-&amp;gt;&#123;operation&#125;-&amp;gt;&#091;$i&#093;-&amp;gt;&#123;linedoc&#125;-&amp;gt;&#091;$j&#093;-&amp;gt;&#123;good&#125;&lt;br&gt;&lt;br&gt;просмотр по индексу проходит без проблем, а когда пытаешься просмотреть по индексу $j возникает ошибка.&lt;br&gt;Ниже формат XML и скрипт для разбора.&lt;br&gt;&lt;br&gt;$VAR1 = &#123;&lt;br&gt;          &apos;body&apos; =&amp;gt; &#123;&lt;br&gt;                    &apos;operation&apos; =&amp;gt; &#091;&lt;br&gt;                                   &#123;&lt;br&gt;                                     &apos;referenceNo&apos; =&amp;gt; &apos;893801-&apos;,&lt;br&gt;                                     &apos;store&apos; =&amp;gt; &quot;&#092;x&#123;441&#125;&#092;x&#123;43a&#125;&#092;x&#123;43b&#125;6&quot;,&lt;br&gt;                                     &apos;dateDoc&apos; =&amp;gt; &apos;06.10.2008&apos;,&lt;br&gt;                                     &apos;saleSum&apos; =&amp;gt; &#123;&lt;br&gt;                                                  &apos;sumb&apos; =&amp;gt; &apos;1380&apos;,&lt;br&gt;                                                  &apos;sumr&apos; =&amp;gt; &apos;1380&apos;&lt;br&gt;                                                &#125;,&lt;br&gt;                                     &apos;docSum&apos; =&amp;gt; &#123;&lt;br&gt;                         </description>

<item>
    <title>Perl XML (SMF)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7641.html#7</link>
    <pubDate>Wed, 15 Oct 2008 08:57:39 GMT</pubDate>
    <description>Извиняюсь, понял в чем косяк. Спасибо)&lt;br&gt;</description>
</item>

<item>
    <title>Perl XML (NuINu)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7641.html#6</link>
    <pubDate>Wed, 15 Oct 2008 08:36:07 GMT</pubDate>
    <description>&amp;gt;Да дамп, точнее его начало. Файл большой(~1M), постить его сюда не разумно. &lt;br&gt;&amp;gt;XML - это стандартная выгрузка из базы данных, используют постоянно, подгружают &lt;br&gt;&amp;gt;в 1С и т.п. Поэтому грешить на него сложно, вопрос в &lt;br&gt;&amp;gt;том как его обработать в перле. &lt;br&gt;&lt;br&gt;мне все равно на что грешить, я показал, что ты пытаешься использовать элемент как массив, в то время как он массивом не является.(вернее является, но не всегда)&lt;br&gt;</description>
</item>

<item>
    <title>Perl XML (SMF)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7641.html#5</link>
    <pubDate>Wed, 15 Oct 2008 08:13:34 GMT</pubDate>
    <description>Да дамп, точнее его начало. Файл большой(~1M), постить его сюда не разумно. XML - это стандартная выгрузка из базы данных, используют постоянно, подгружают в 1С и т.п. Поэтому грешить на него сложно, вопрос в том как его обработать в перле.&lt;br&gt;</description>
</item>

<item>
    <title>Perl XML (SMF)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7641.html#4</link>
    <pubDate>Wed, 15 Oct 2008 08:04:33 GMT</pubDate>
    <description>&amp;gt;Если хотите заниматься перлом, то забудьте про С, Pascal и подобные языки. &lt;br&gt;&lt;br&gt;Согласен, что перл отличается от всего остального, и можно писать без индексов. Но взяв ваше предложение:&lt;br&gt;&amp;gt;В перле все можно сделать в разы элегантнее и эффективней. Пример &lt;br&gt;&amp;gt;прохода по вашей структуре без всяких $i и $j &lt;br&gt;&amp;gt;foreach my $op (&#064;&#123;$data-&amp;gt;&#123;body&#125;&#123;operation&#125;&#125;) &#123;&lt;br&gt;&amp;gt;  #делаем что вам надо на этом уровне, например &lt;br&gt;&amp;gt;  my $nam=$op-&amp;gt;&#123;referenceNo&#125;;&lt;br&gt;&amp;gt;  foreach my $linedoc (&#064;&#123;$op-&amp;gt;&#123;linedoc&#125;&#125;) &#123;&lt;br&gt;&amp;gt;    print $linedoc-&amp;gt;&#123;good&#125;;&lt;br&gt;&amp;gt;  &#125; &lt;br&gt;&amp;gt;) &lt;br&gt;&amp;gt;&lt;br&gt;&lt;br&gt;и отредактировав скрипт получил следующие:&lt;br&gt;109121&lt;br&gt;131535&lt;br&gt;Not an ARRAY reference at test.pl line 27.&lt;br&gt;То есть проблема не решилась.&lt;br&gt;&lt;br&gt;Как я понял он пытается перейти на следующий НЕСУЩЕСТВУЮЩИЙ элемент массива linedoc&lt;br&gt;Должен отметить, что длина массивов linedoc в каждом из элементов operation разная.&lt;br&gt;</description>
</item>

<item>
    <title>Perl XML (angra)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7641.html#3</link>
    <pubDate>Tue, 14 Oct 2008 13:23:52 GMT</pubDate>
    <description>Если хотите заниматься перлом, то забудьте про С, Pascal и подобные языки. В перле все можно сделать в разы элегантнее и эффективней. Пример прохода по вашей структуре без всяких $i и $j&lt;br&gt;foreach my $op (&#064;&#123;$data-&amp;gt;&#123;body&#125;&#123;operation&#125;&#125;) &#123;&lt;br&gt;  #делаем что вам надо на этом уровне, например&lt;br&gt;  my $nam=$op-&amp;gt;&#123;referenceNo&#125;;&lt;br&gt;  foreach my $linedoc (&#064;&#123;$op-&amp;gt;&#123;linedoc&#125;&#125;) &#123;&lt;br&gt;    print $linedoc-&amp;gt;&#123;good&#125;;&lt;br&gt;  &#125;&lt;br&gt;)&lt;br&gt;&lt;br&gt;Отмечу что от некоторых &#123;&#125; и -&amp;gt; можно было избавится, оставил для наглядности. &lt;br&gt;</description>
</item>

<item>
    <title>Perl XML (NuINu)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7641.html#2</link>
    <pubDate>Tue, 14 Oct 2008 09:13:38 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;$VAR1 = &#123; &lt;br&gt;&amp;gt;&amp;gt;          &apos;body&apos; =&amp;gt; &#123;&lt;br&gt;&amp;gt;&amp;gt;                    &apos;operation&apos; =&amp;gt; &#091;&lt;br&gt;&amp;gt;&amp;gt;            &lt;br&gt;&amp;gt;&amp;gt;           &lt;br&gt;&amp;gt;&amp;gt;           &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;это не хмл формат, это какой то дамп, выложи коротенький пример хмл &lt;br&gt;&amp;gt;я. &lt;br&gt;&lt;br&gt;к тому же неверно отфорамтированный(нету закрывающий скобок внизу)&lt;br&gt;&lt;br&gt;лан, не надо, улавливай разницу:&lt;br&gt;                                    &apos;linedoc&apos; =&amp;gt; &#091;&lt;br&gt;                                                  &#123;&lt;br&gt;                                                    &apos;saleSum&apos; =&amp;gt; &#123;&lt;br&gt;                                                                 &apos;sumb&apos; =&amp;gt; &apos;1296&apos;,&lt;br&gt;.....&lt;br&gt;                                    &apos;linedoc&apos; =&amp;gt; &#123;&lt;br&gt;                                                  &apos;saleSum&apos; =&amp;gt; &#123;&lt;br&gt;                                                               &apos;sumb&apos; =&amp;gt; &apos;19200&apos;,&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Perl XML (NuINu)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/7641.html#1</link>
    <pubDate>Tue, 14 Oct 2008 08:43:18 GMT</pubDate>
    <description>&amp;gt;Ниже формат XML и скрипт для разбора. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;$VAR1 = &#123; &lt;br&gt;&amp;gt;          &apos;body&apos; =&amp;gt; &#123;&lt;br&gt;&amp;gt;                    &apos;operation&apos; =&amp;gt; &#091;&lt;br&gt;&amp;gt;            &lt;br&gt;&amp;gt;           &lt;br&gt;&amp;gt;           &lt;br&gt;&lt;br&gt;это не хмл формат, это какой то дамп, выложи коротенький пример хмл я.&lt;br&gt;</description>
</item>

</channel>
</rss>
