|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Denis Poznyakov 2:5020/400 14 Oct 2004 15:40:22 To : Artem Chuprina Subject : Re: XML::Parser -------------------------------------------------------------------------------- > >> >> >> 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 a > DP> 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о в принципе у него не принципиально хуже. Хотя я бы ему посоветовал > сначала на лиспе попрограммировать... кхм, ну мот не так выразился немного в плане "удобно", я имел ввиду что ИМХО удобнее от хэша плясать чем от массива и параметры/значение элемента получать от функции модуля а в хэше соответственно хранить это в своих хитрых тэгах ну в принципе эт было просто ИМХО =) --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6577212cf5cb.html, оценка из 5, голосов 10
|