nataraj: (Default)
[personal profile] nataraj
Разбирался с XML модулями перла
(XML - язык разметки типа HTML, а модули программульки позв. с ним работать из перла)
Так вот, все эти XML модули необычайно похожи на наших отечественных ментов. Одни умеют читать, другие писать... а вот так чтобы и читать и писать - то это наверное целый полковник.

Полковником к стати оказался XML::Mini - наредкость приятным на вид...

Date: 2004-06-01 07:29 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Дом-дерево -- Это круто... это по элфийски...

А если серьезно... то из док совершенно не прослеживалась приемственность ентих самых модулей... что они с одним и тем же деревом работают... Наверное мой ляп...
Вроде бы XML::Mini все могЕт... Только с русскими буквами у него какие-то экзотические отношения... он вместо них конструкции с решетками рисует... но это мы сейчас посмотрим и может поправим...

Date: 2004-06-01 07:46 am (UTC)
From: [identity profile] alexkuklin.livejournal.com
эээ... оно прослеживается из стандарта. DOM - один из стандартов обработки XML.
если ты отпарсил DOM-дерево, то получил на него ссылку и можешь скормить какому-нибудь обработчику. Обработчик будет с ним обращаться через методы примерно
$x = $node->firstChild();
while ($x)
{
....
$x = $x->nextSibling();
}
при этом код, реализующий эти методы, никого не волнует
более того, в любых других языках эти методы будут те же.
в этом и есть сила XML. ну или заметная ее часть.

Date: 2004-06-01 09:26 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Хм... то что функции названы стандартно - это понятно...
А устроено ли дерево в памяти одним и тем же способом...

Или все остальные обработчики будут работать с этим деревом исключительно через его методы, невзирая на его внутреннее устройство...

Давай поступим проще... какой модуль использовать для парсенья? какой для изменения? какой для вывода?...
Я конечно понаписал щас кой чего, но перепесать еще не позно...
Или так и оставим XML::Mini ?

Date: 2004-06-01 09:38 am (UTC)
From: [identity profile] alexkuklin.livejournal.com
именно, все остальные обработчики будут работать с этим деревом исключительно через его методы, невзирая на его внутреннее устройство...
Ну а если те, которые не будут - "жила была девочка. Сама виновата."

Варианты?

"Не приходите, не имея вариантов решения" :)

Date: 2004-06-01 09:53 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Супер.
Про девочку тоже знаю...

Вот и я спрашиваю, варианты...
Есть XML::Mini, который все в одном флаконе, построитель дерева и его модификатор и вывод назад в XML

Есть XML::LibXML который таки строит DOM дерево... но если посмотреть на методы из XML::LibXML::Element станет понятно что к этому дереву можно можно обращаться только на чтение... Если там где-то что-то есть про запись, ткните меня носом в это место плиз...

Есть XML::Parser Который умеет строить дерево из хэшей, но не умеет запихивать его обратно в XML

Есть XML::XPathКоторый так же не позволяет модифицировать дерево...

Есть XML::SimpleВ котором все хорошо, умеет писать и читать, но только не умеет следить за порядком детей внутри родителя... А нам этот порядок важен...

Я что-то важное пропустил?

Date: 2004-06-01 10:17 am (UTC)
From: [identity profile] alexkuklin.livejournal.com
Мнэ... имхо упустил.
XML::DOM
Там есть XML::DOM::Parser, которые генерирует модифицируемое дерево, которое можно потом вывести при помощи XML::Writer, обрабатывать, например, через XML::XSLT.

Date: 2004-06-01 11:00 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Подожди, в XML::Writer ни слова про DOM дерево не сказано... Как оно его может выводить...

А по поводу XML::XSLT в O'Relly`вской книжке сказано
"XSLT - это механизм, реализующий подстановку шаблона. Язык XSLT - это основанный на XML язык программирования, описывающий преобразования различных типов документов"
IMHO Это совсем не то что нам нада...

XML::DOM... В нем действительно есть вывод назад в текстовый вид... правда с пометкой что он не входит в DOM спецификацию... И вроде бы все что нужно можно изменять...

Правда ни одно явного довода в пользу XML::DOM в сравнении с XML::Mini я не вижу...
XML::DOM - более стандартная конструкция
XML::Mini - более простая и понятная...

Вообщем я готов бросить все и начать работать с XML::DOM, если это хоть зачем-то надо...


Date: 2004-06-01 10:20 am (UTC)
From: [identity profile] alexkuklin.livejournal.com
В общем, еще раз курим распечатку http://cpan.uwinnipeg.ca/chapter/String_Lang_Text_Proc/XML

Date: 2004-06-01 07:46 am (UTC)
From: [identity profile] beldmit.livejournal.com
Коля, главное, не рассказывай то, что ты пишешь в ЖЖ работодателю. Если он программист - может не понять.

Date: 2004-06-01 09:22 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Ну в данном случае работодатель -- товарищ alexkuklin и он так и так в курсе... ;-)

Profile

nataraj: (Default)
Swami Dhyan Nataraj

July 2024

S M T W T F S
 123456
789 10111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 21st, 2026 12:31 pm
Powered by Dreamwidth Studios