|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 12 Oct 2004 19:08:46 To : Denis Poznyakov Subject : Re: XML::Parser -------------------------------------------------------------------------------- Denis Poznyakov -> Artem Chuprina @ Tue, 12 Oct 2004 11:43:59 +0000 (UTC): >> >> >> DP> мдэ, не знал что так галимо распарсить можно, или мот у DP> создателя >> >> DP> такого >> >> >> DP> стиля такое хитрое представление о дереве .... тут массив >> DP> массивов >> >> >> DP> получается и нет привязки к названиям параметрам и тп DP> корректней >> >> DP> всетаки >> >> >> DP> через дампер делать >> >> >> >> >> >> Гм. А сэр вообще не в курсе, что дерево _в норме_ представляют DP> как >> >> >> список, некоторые элементы которого в свою очередь могут быть >> DP> списками, >> >> >> и т.д.? >> >> >> >> DP> Цитата: "некоторые элементы которого в свою очередь могут быть >> DP> списками," >> >> >> >> DP> Артем, в том то и дело что если бы некоторые ...там все списками! >> >> >> >> Hу и что? Ты вообще, что ли, за свою жизнь ни одной умной книжки не >> >> прочел? Где не список - там лист дерева. Где список - там, >> >> соответственно, не лист. Возможны вариации (для XML, например, будет >> >> резонно, если первым элементом списка будет хэш атрибутов). >> >> DP> не, ты не понял, я вот что имею ввиду: >> >> DP> удобно: >> DP> [{name=>value,param=>value},{name=>value},...] >> >> DP> не удобно: >> DP> [[хname,value,param,value],name,value,name,...] >> >> Я как-то не очень верю в то, что оно устроено именно так. Во всяком >> случае, эти две структуры отчетливо не эквивалентны. Приведи пример >> того, как оно устроено на самом деле. Hа примере, скажем, >> >> <test xmlns="something"><subtest DP> id="15">body0</subtest><subtest1/>body1</test> DP> вот из perldoc XML::Parser DP> ================ DP> Tree DP> Parse will return a parse tree for the document. Each node in the tree DP> takes the form of a tag, content pair. Text nodes are represented with DP> a pseudo-tag of "0" and the string that is their content. For elements, DP> the content is an array reference. The first item in the array is a DP> (possibly empty) hash reference containing attributes. The remainder of DP> the array is a sequence of tag-content pairs representing the content of DP> the element. DP> So for example the result of parsing: DP> <foo><head id="a">Hello DP> <em>there</em></head><bar>Howdy<ref/></bar>do</foo> DP> would be: DP> Tag Content DP> ================================================================== DP> [foo, [{}, head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], DP> bar, [ {}, 0, "Howdy", ref, [{}]], DP> 0, "do" DP> ] DP> ] DP> ================ Hу, это ни разу не то, что ты написал... С точностью до того, что я бы делал уровень вложенности не там, это вполне логичная конструкция. А вот что делать с тем, что ты написал под заголовком "удобно", я не очень понимаю. Я бы выбрал подход [имя_элемента, {атрибуты}, подэлементы]. Тогда вышеуказанное раскладывается в [foo, {}, [head, {id=>"a"}, "Hello ", [em, {}, "there"]], [bar, {}, "Howdy", [ref, {}]], "do"] Hо в принципе у него не принципиально хуже. Хотя я бы ему посоветовал сначала на лиспе попрограммировать... -- Artem Chuprina RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5.3 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/25606cd407c43.html, оценка из 5, голосов 10
|