<br><br><div class="gmail_quote">2009/5/29 Yuri Pac <span dir="ltr">&lt;<a href="mailto:yu.pats@gmail.com">yu.pats@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Полное построение дерева будет медленее существующих решений, но если<br>
надо вырвать из ХМЛ только часть данных, то быстрее :)</blockquote><div><br>Построение дерева -- это не парсинг, это следующий уровень после парсинга.<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div class="h5">
2009/5/29 Andrei &lt;<a href="mailto:andrei.protasovitski@gmail.com">andrei.protasovitski@gmail.com</a>&gt;:<br>
&gt;<br>
&gt;<br>
&gt; 2009/5/29 Yuri Pac &lt;<a href="mailto:yu.pats@gmail.com">yu.pats@gmail.com</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; Ну вообще-то основная идея вышеупомянутого доклада П. Кудинова была<br>
&gt;&gt; именно в том, что ну его нах парсить ХМЛ (любым способом) не используя<br>
&gt;&gt; граф ядра видюхи :)<br>
&gt;<br>
&gt; А моя идея в том, что на pure perl с re можно парсить! Главное, знать, как<br>
&gt; читать XML. :)<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; 2009/5/29 Andrei &lt;<a href="mailto:andrei.protasovitski@gmail.com">andrei.protasovitski@gmail.com</a>&gt;:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 2009/5/29 Andrew Shitov &lt;<a href="mailto:andy@shitov.ru">andy@shitov.ru</a>&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt; Прошу простить моё невежество, а что такое рекурсивные регэкспы?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Это рулез, который может парсить, например, вложенные скобки.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; my $expr = &#39;1 + (2 + (3 + (4 + 5) + 6))&#39;;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; $expr =~ s/<br>
&gt;&gt; &gt;&gt;   \(<br>
&gt;&gt; &gt;&gt;      (<br>
&gt;&gt; &gt;&gt;         [^()]+<br>
&gt;&gt; &gt;&gt;      )<br>
&gt;&gt; &gt;&gt;   |<br>
&gt;&gt; &gt;&gt;      (?1)            ## Вот здесь рекурсивно вызывается выражение,<br>
&gt;&gt; &gt;&gt; которое матчится первыми скобками<br>
&gt;&gt; &gt;&gt;   \)<br>
&gt;&gt; &gt;&gt; /say $1;/xge;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Да, я уже нашёл. Но что-то мне подсказывает, что этот рулез нервно курит<br>
&gt;&gt; &gt; в<br>
&gt;&gt; &gt; сторонке, когда речь идёт об XML со всеми его комментариями, областями<br>
&gt;&gt; &gt; CDATA, инструкциями обработки (processing instructions), неймспейсами и<br>
&gt;&gt; &gt; прочими полезными вещами. Опять же, много мегабайтный XML, который<br>
&gt;&gt; &gt; валится<br>
&gt;&gt; &gt; через сокет даже такими регэкспами вряд ли удасться эффективно<br>
&gt;&gt; &gt; распарсить.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; --<br>
&gt;&gt; &gt;&gt; Andrew Shitov<br>
&gt;&gt; &gt;&gt; ______________________________________________________________________<br>
&gt;&gt; &gt;&gt; <a href="mailto:andy@shitov.ru">andy@shitov.ru</a> | <a href="http://shitov.ru" target="_blank">http://shitov.ru</a><br>
&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; Minsk-pm mailing list<br>
&gt;&gt; &gt;&gt; <a href="mailto:Minsk-pm@pm.org">Minsk-pm@pm.org</a><br>
&gt;&gt; &gt;&gt; <a href="http://mail.pm.org/mailman/listinfo/minsk-pm" target="_blank">http://mail.pm.org/mailman/listinfo/minsk-pm</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt; Andrei Protasovitski<br>
&gt;&gt; &gt; &lt; andrei[dot]protasovitski[at]gmail[dot]com &gt;<br>
&gt;&gt; &gt; Minsk, Belarus<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; Minsk-pm mailing list<br>
&gt;&gt; &gt; <a href="mailto:Minsk-pm@pm.org">Minsk-pm@pm.org</a><br>
&gt;&gt; &gt; <a href="http://mail.pm.org/mailman/listinfo/minsk-pm" target="_blank">http://mail.pm.org/mailman/listinfo/minsk-pm</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; WBR, Yuri Pac<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Minsk-pm mailing list<br>
&gt;&gt; <a href="mailto:Minsk-pm@pm.org">Minsk-pm@pm.org</a><br>
&gt;&gt; <a href="http://mail.pm.org/mailman/listinfo/minsk-pm" target="_blank">http://mail.pm.org/mailman/listinfo/minsk-pm</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Andrei Protasovitski<br>
&gt; &lt; andrei[dot]protasovitski[at]gmail[dot]com &gt;<br>
&gt; Minsk, Belarus<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Minsk-pm mailing list<br>
&gt; <a href="mailto:Minsk-pm@pm.org">Minsk-pm@pm.org</a><br>
&gt; <a href="http://mail.pm.org/mailman/listinfo/minsk-pm" target="_blank">http://mail.pm.org/mailman/listinfo/minsk-pm</a><br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
--<br>
WBR, Yuri Pac<br>
_______________________________________________<br>
Minsk-pm mailing list<br>
<a href="mailto:Minsk-pm@pm.org">Minsk-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/minsk-pm" target="_blank">http://mail.pm.org/mailman/listinfo/minsk-pm</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Andrei Protasovitski<br>&lt; andrei[dot]protasovitski[at]gmail[dot]com &gt;<br>Minsk, Belarus<br>