библиотечка xml.dll
Участников: 4
библиотечка xml.dll
Привет!
Представляю вашему вниманию ещё один мой проект.
библиотечка xml.dll
версия 0.02.07 от 08 февраля 2009 г.
Удилил больше внимания атрибутам.
В принципе, база уже есть. Библиотека умеет делать всё что мне нужно на данный момент. Какие-то фичи буду добавлять только по необходимости.
Аналоги библиотеки есть.
И пока гораздо лучше. Это хм... более упрощённая версия. И вообще это моё видение решения данной задачи.
И так. Про xml и html все конечно знают?
По своей сути эти два формата похожи, но их поддержка да и назначения различны.
Я же делаю библиотеку способную работать с xml и html.
Под работой я понимаю, создание, модификация и анализ документа.
Например в xml файле удобно хранить настройки программы.
Удобно объмениваться данными между различными приложениями.
Так же xml используеться для стандартизированного хранения данных.
В прочем структуру данных можно использовать и в отрыве от файлов, в нутри программы, как альтернатива жестким массивам.
для html документа, нужны ещё дополнительные инструменты.
Например выбрать список ссылок.
Или переформатировать таблицу.
Моя библиотека именно для всего этого и расчитана. Хотя с многими оговорками. Стандарты поддерживаються не полностью или наоборот расширены.
Задачи под которые собираюсь использовать библиотеку:
я хочу сам проанализировать страницу сайта.
Или переконвертировать fb2 книгу.
На даный момент моя библиотека умеет создавать xml или html документ.
Простые элементы. Вложенные элементы. Контейнеры с текстом.
Работает с атрибутами элементов.
Документ можно сохранить в файл.
Можно загрузить из файла.
А да, загрузить можно только xml. На некоторых специфических для html элементах споткнёться. Внутренняя настройка пока только под xml.
Можно провести поиск нужного элемента или текста.
Можно выбрать список ссылок и работать отдельно с ними.
В архиве рабочий код.
В папочке examples лежат тесты (примеры) использования библиотеки. С подробными русскими пояснениями.
Пишеться руководство doc/manual.
Теперь об интерфейсе и внутренней архитектуре.
Коркасом библиотеки являеться дерево. Класс Tree. Соответственно внутреннее управление объектное. Это в данном случае единственный вариант.
А вот внешнее управление полностью процедурное. Экспортированы функции-обёртки, которые я посчитал необходимыми.
Тоесть, это во-первых бо`льшая жосткость для работы с данными. Хотя можно сделать всё что надо. Именно под такой интерфейс я ориентируюсь.
Кажеться выходит достаточно удобно. А это ведь главное.
во вторых конструкции, выглядят весьма непривычно. Внешне это очень далеко от технологии dom. Но всё имеет право существовать.
в третьих нет лишней мороки с различными типами данных. Да и обновление не должно затрагивать использующие библиотеку программы.
Хотя с ресурсами нужно быть по аккуратнее и не запутаться в них.
Делаю в первую очередь для себя. Если кому-то чего-то надо, скажите я подумаю над реализацией. Если чего-то не понятно, опять же пишите и всё разрулим.
На данный момент библиотеку уже активно использую в нескольких программах.
Представляю вашему вниманию ещё один мой проект.
библиотечка xml.dll
версия 0.02.07 от 08 февраля 2009 г.
Удилил больше внимания атрибутам.
В принципе, база уже есть. Библиотека умеет делать всё что мне нужно на данный момент. Какие-то фичи буду добавлять только по необходимости.
Аналоги библиотеки есть.
И пока гораздо лучше. Это хм... более упрощённая версия. И вообще это моё видение решения данной задачи.
И так. Про xml и html все конечно знают?
По своей сути эти два формата похожи, но их поддержка да и назначения различны.
Я же делаю библиотеку способную работать с xml и html.
Под работой я понимаю, создание, модификация и анализ документа.
Например в xml файле удобно хранить настройки программы.
Удобно объмениваться данными между различными приложениями.
Так же xml используеться для стандартизированного хранения данных.
В прочем структуру данных можно использовать и в отрыве от файлов, в нутри программы, как альтернатива жестким массивам.
для html документа, нужны ещё дополнительные инструменты.
Например выбрать список ссылок.
Или переформатировать таблицу.
Моя библиотека именно для всего этого и расчитана. Хотя с многими оговорками. Стандарты поддерживаються не полностью или наоборот расширены.
Задачи под которые собираюсь использовать библиотеку:
я хочу сам проанализировать страницу сайта.
Или переконвертировать fb2 книгу.
На даный момент моя библиотека умеет создавать xml или html документ.
Простые элементы. Вложенные элементы. Контейнеры с текстом.
Работает с атрибутами элементов.
Документ можно сохранить в файл.
Можно загрузить из файла.
А да, загрузить можно только xml. На некоторых специфических для html элементах споткнёться. Внутренняя настройка пока только под xml.
Можно провести поиск нужного элемента или текста.
Можно выбрать список ссылок и работать отдельно с ними.
В архиве рабочий код.
В папочке examples лежат тесты (примеры) использования библиотеки. С подробными русскими пояснениями.
Пишеться руководство doc/manual.
Теперь об интерфейсе и внутренней архитектуре.
Коркасом библиотеки являеться дерево. Класс Tree. Соответственно внутреннее управление объектное. Это в данном случае единственный вариант.
А вот внешнее управление полностью процедурное. Экспортированы функции-обёртки, которые я посчитал необходимыми.
Тоесть, это во-первых бо`льшая жосткость для работы с данными. Хотя можно сделать всё что надо. Именно под такой интерфейс я ориентируюсь.
Кажеться выходит достаточно удобно. А это ведь главное.
во вторых конструкции, выглядят весьма непривычно. Внешне это очень далеко от технологии dom. Но всё имеет право существовать.
в третьих нет лишней мороки с различными типами данных. Да и обновление не должно затрагивать использующие библиотеку программы.
Хотя с ресурсами нужно быть по аккуратнее и не запутаться в них.
Делаю в первую очередь для себя. Если кому-то чего-то надо, скажите я подумаю над реализацией. Если чего-то не понятно, опять же пишите и всё разрулим.
На данный момент библиотеку уже активно использую в нескольких программах.
Последний раз редактировалось: Eric-S (Вс Фев 08, 2009 10:12 am), всего редактировалось 2 раз(а)
Re: библиотечка xml.dll
Сижу и думаю, как бы совместить концепцию ооп с dll. То так чтобы это был не изврат и не com.
Можно вынести классы, сделав их общими. Но ведь тогда фиг я получю гибкость при обновлении!
Ндя... Прибег к очень странному способу. Экспортирую простые функции. Частично это обёртки, а частично просто методы выдранные из классов.
Ну чтож, немного странно выходит, но сгенерировать, более-менее нормальный xml документ у меня получилось.
А концепция объектов, частично осталась, в той мере, которая была предусмотрена.
А теперь вопрос. Какие функции, по вашему нужны для простой работы с xml и html?
Вот думаю, что придёться писать большой мануал по юзанью моей библиотечки. Ексамплами здесь не обойтись.
Можно вынести классы, сделав их общими. Но ведь тогда фиг я получю гибкость при обновлении!
Ндя... Прибег к очень странному способу. Экспортирую простые функции. Частично это обёртки, а частично просто методы выдранные из классов.
Ну чтож, немного странно выходит, но сгенерировать, более-менее нормальный xml документ у меня получилось.
А концепция объектов, частично осталась, в той мере, которая была предусмотрена.
А теперь вопрос. Какие функции, по вашему нужны для простой работы с xml и html?
Вот думаю, что придёться писать большой мануал по юзанью моей библиотечки. Ексамплами здесь не обойтись.
Re: библиотечка xml.dll
Ужас! Но всё же поздравьте! Я сделал парсер!
Теперь можно загрузить простой xml-документ.
И он будет разложен в дом.
Ну, чтож. Теперь буду тестировать и наворачивать!
Мне тут подсказывают, чтобы я ещё сделал html парсер. Точнее возможность их совмещать. Не знаю. Но я подумаю. Мысль-то хорошая.
Теперь можно загрузить простой xml-документ.
И он будет разложен в дом.
Ну, чтож. Теперь буду тестировать и наворачивать!
Мне тут подсказывают, чтобы я ещё сделал html парсер. Точнее возможность их совмещать. Не знаю. Но я подумаю. Мысль-то хорошая.
Re: библиотечка xml.dll
Поздравляю! (очень стыдно, но не знаю что такое парсер)
Gena- Сообщения : 182
Дата регистрации : 2008-11-05
Возраст : 31
Откуда : Москва
Re: библиотечка xml.dll
Парсер или синтаксический анализатор см здесь подробнее.
В xml.dll их даже два.
н
Например строка атрибутов в теге:
href="http://examples.com/" target=_blank name=link1 onclick="alert('hello, world!'"
Функция просто разбирает на пары
ключ, значение
"href", "http://examples.com/"
"target", "_blank",
"name", "link1"
"onclick", "alert('hello, world!'"
что можно записать в массив. И будет удобно получить или изменить значение.
Второй, более сложный. Про который я собственно и радовался. Это парсер xml структуры.
В ней синтаксис достаточно гибкий и простой, но проанализировать его и разложить в структуру, темболее древовидную... Короче я помучался.
И ещё буду мучаться, потому, что пока сделана только основа. Но дальше будет легче.
В xml.dll их даже два.
н
Например строка атрибутов в теге:
href="http://examples.com/" target=_blank name=link1 onclick="alert('hello, world!'"
Функция просто разбирает на пары
ключ, значение
"href", "http://examples.com/"
"target", "_blank",
"name", "link1"
"onclick", "alert('hello, world!'"
что можно записать в массив. И будет удобно получить или изменить значение.
Второй, более сложный. Про который я собственно и радовался. Это парсер xml структуры.
В ней синтаксис достаточно гибкий и простой, но проанализировать его и разложить в структуру, темболее древовидную... Короче я помучался.
И ещё буду мучаться, потому, что пока сделана только основа. Но дальше будет легче.
Re: библиотечка xml.dll
Опять обновление. Версия 0.02.
Почти всё переписал. Уж-ж-жас! Десять дней!
И по прежнему это ещё не рабочая версия. Хотя библиотека уже кое-что может.
Буду разбираться с памятью.
И буду делать поиск узлов.
Почти всё переписал. Уж-ж-жас! Десять дней!
И по прежнему это ещё не рабочая версия. Хотя библиотека уже кое-что может.
Буду разбираться с памятью.
И буду делать поиск узлов.
Раскажи по подробней
Eric-s, расскажи поподробней о своей библиотеке, какими функциями она обладает и что в конечном результате должно получиться?
Есть ли аналоги данной библиотеки? Например: LibXML (http://www.opennet.ru/docs/RUS/blfs6/general/libxml.html), или я ошибаюсь?
Есть ли аналоги данной библиотеки? Например: LibXML (http://www.opennet.ru/docs/RUS/blfs6/general/libxml.html), или я ошибаюсь?
Re: библиотечка xml.dll
Ща постараюсь ответить. Вопрос такой большой. И трудно его коротко прописать.
Последний раз редактировалось: Eric-S (Вс Янв 18, 2009 10:05 pm), всего редактировалось 1 раз(а) (Обоснование : Переношу ответ в первый пост.)
Re: библиотечка xml.dll
Как я уже рассказывал. Хотя может и не на этом форуме.
Хочу сделать анализатор языка.
Естественного или искусственного.
Например на вход даём исходник на языке basic и его синтаксические правила.
А на выходе получаем стандартный xml, где весь этот исходник разобран и разложен в структуру.
Можно не basic,а java, php, assembler или всё для чего вы найдёте или сделаете правила.
А потом этот универсальный код в xml можно оптимизировать стандартными инструментами. или даже откомпилировать.
Или обратно сохранить в любой описаный формат.
Причём описание правил будет не очень сложным. У меня уже есть наброски. И пока хватает простых ini файлов.
Хотя, анализатор пока в зачаточном состоянии.
Или через анализатор текста можно будет пропустить текст на естественном языке.
Что позволит работать с текстом на объектном уровне.
Тут и переконвертация, переформатирование. А в дальнейшем гибкая проверка или даже перевод на другие языки.
Короче планы огромные. Но... Для этого мне нужен xml. А всё что я видел, совершенно не подходит.
Хочу сделать анализатор языка.
Естественного или искусственного.
Например на вход даём исходник на языке basic и его синтаксические правила.
А на выходе получаем стандартный xml, где весь этот исходник разобран и разложен в структуру.
Можно не basic,а java, php, assembler или всё для чего вы найдёте или сделаете правила.
А потом этот универсальный код в xml можно оптимизировать стандартными инструментами. или даже откомпилировать.
Или обратно сохранить в любой описаный формат.
Причём описание правил будет не очень сложным. У меня уже есть наброски. И пока хватает простых ini файлов.
Хотя, анализатор пока в зачаточном состоянии.
Или через анализатор текста можно будет пропустить текст на естественном языке.
Что позволит работать с текстом на объектном уровне.
Тут и переконвертация, переформатирование. А в дальнейшем гибкая проверка или даже перевод на другие языки.
Короче планы огромные. Но... Для этого мне нужен xml. А всё что я видел, совершенно не подходит.
Re: библиотечка xml.dll
Очень интересная идея и думаю, когда закончите, очень полезная вещь будет. Желаю успехов.
Gena- Сообщения : 182
Дата регистрации : 2008-11-05
Возраст : 31
Откуда : Москва
Интересно
Спасибо, Eric-s
Очень интересные идеи. Но опять возникает вопрос, чем не устраивают те аналоги твоей библиотеки? Может лучше было бы не тратить время на реализацию новой библиотеки а сосредоточится на том проекте для которого это все затеяно и воспользоваться уже созданными библиотеками? Ну во всяком случае это тебе лучше знать и решать
Кстати, что то подобное твоему проекту который должен потрясти весь мир и мне в голову приходил. Такой себе анализатор который смог бы проанализировать исходный текст программы на определенном языке (в соответствии с спецификацией к конкретному языку) и перевести его в другой (по спецификации, но для того языка на который переводится). В общем идей для реализации множество, но главное в данном случае реализация.
Так же по этой теме (различных анализаторов) упомяну о своем проекте Форматирования Исходного текста. Суть которого заключался в приведении исходного кода программы в надлежащий вид (установка отступов, убирание лишних пробелов, строк и т.д.), то есть приведение текста к определенному стилю оформления:
Был таким:
print "Hello"
if (i=0) then
x=y+3
endif
А стал вот таким например:
print "Hello"
if ( i = 0 ) then
___x = y + 3
endif
Причем все форматирование (количество отступов, их место и т.д.) определяется самим пользователем в отдельной спецификации (файле настроек).
Подобных программ существует множество, но все они заточены под один конкретный язык. Данную погрешность я и пытался исправить создав универсальный формирователь исходных кодов.
В общем идея как всегда хороша, но с реализацией подкачал На данный момент работа над программой приостановлена, в первую очередь по техническим причинам. Есть возможность форматировать простой код на Бейсике и С (возможно и на других, только необходимо написать спецификацию под необходимый язык).
Думаю с реализацией твоей идеи, Eric-s, будет возможность в дальнейшем реализовать и этот проект. Удачи в реализации проекта
PS
Интересная игра Морской Бой на твоем сайте, написана на ФБ? Выложи на форуме, думаю всем будет интересно посмотреть
Очень интересные идеи. Но опять возникает вопрос, чем не устраивают те аналоги твоей библиотеки? Может лучше было бы не тратить время на реализацию новой библиотеки а сосредоточится на том проекте для которого это все затеяно и воспользоваться уже созданными библиотеками? Ну во всяком случае это тебе лучше знать и решать
Кстати, что то подобное твоему проекту который должен потрясти весь мир и мне в голову приходил. Такой себе анализатор который смог бы проанализировать исходный текст программы на определенном языке (в соответствии с спецификацией к конкретному языку) и перевести его в другой (по спецификации, но для того языка на который переводится). В общем идей для реализации множество, но главное в данном случае реализация.
Так же по этой теме (различных анализаторов) упомяну о своем проекте Форматирования Исходного текста. Суть которого заключался в приведении исходного кода программы в надлежащий вид (установка отступов, убирание лишних пробелов, строк и т.д.), то есть приведение текста к определенному стилю оформления:
Был таким:
print "Hello"
if (i=0) then
x=y+3
endif
А стал вот таким например:
print "Hello"
if ( i = 0 ) then
___x = y + 3
endif
Причем все форматирование (количество отступов, их место и т.д.) определяется самим пользователем в отдельной спецификации (файле настроек).
Подобных программ существует множество, но все они заточены под один конкретный язык. Данную погрешность я и пытался исправить создав универсальный формирователь исходных кодов.
В общем идея как всегда хороша, но с реализацией подкачал На данный момент работа над программой приостановлена, в первую очередь по техническим причинам. Есть возможность форматировать простой код на Бейсике и С (возможно и на других, только необходимо написать спецификацию под необходимый язык).
Думаю с реализацией твоей идеи, Eric-s, будет возможность в дальнейшем реализовать и этот проект. Удачи в реализации проекта
PS
Интересная игра Морской Бой на твоем сайте, написана на ФБ? Выложи на форуме, думаю всем будет интересно посмотреть
Re: библиотечка xml.dll
Да, да! Вы правы. Есть альтернативы. Но я уже устал повторять. Что эти "альтернативные варианты" меня не устраивают.
Я хочу много нестандартных вещей от разных библиотек. В одних это есть. В других меня устраивает. Ну а в третьих... Всё совсем не то.
Возьмём libXml.
Да, это стандарт для xml.
Но ведь мне нужен не только xml но и html!
А libXml не очень мне понравился в управлении. Да и не совсеми фичами я смог разобраться. А мне же от этой библиотеки нужно многое.
Больше всего меня же потрясли проблемы с кодировками.
У мелкомягких есть две библиотеки. Для xml и html. Функционал потрясающий. Почти всё что мне нужно. На то чего нет, можно закрыть глаза. Но! У меня возникли серьёзные проблемы с подключением к freebasic!
Всё остальное это ерунда.
А... Да. Моя библиотека xml.dll (название не верное, но другого пока нет).
Это по сути 3 библиотеки в одном.
Хотя я сейчас дозреваю, чтобы всё же разбить их на две.
Одна библиотека будет только с markup language работать, а в другой будет структурирование данных.
Опять же есть альтернативы... Но там просто много примочек, а то что мне нужно слишком усложнено.
Так что я пока в поиске идиального решения. Буду перетряхивать и перестраивать. Пока не удовлетварюсь.
Об анализаторе текста. Языки программирования я привёл только для примера. Хотя это тоже очень интересный проект. А выходное форматирование... Хм. Оно там будет само получаться, ровненькое и красивенькое. А при желании можно будет ещё и самодокументацию из кода выдрать.
Но вообще "анализатор текста" это опять промежуточный проект. Сделаю наверное библиотечку и консольную утилитку. Хотя об этом говорить слишком рано.
Я хочу много нестандартных вещей от разных библиотек. В одних это есть. В других меня устраивает. Ну а в третьих... Всё совсем не то.
Возьмём libXml.
Да, это стандарт для xml.
Но ведь мне нужен не только xml но и html!
А libXml не очень мне понравился в управлении. Да и не совсеми фичами я смог разобраться. А мне же от этой библиотеки нужно многое.
Больше всего меня же потрясли проблемы с кодировками.
У мелкомягких есть две библиотеки. Для xml и html. Функционал потрясающий. Почти всё что мне нужно. На то чего нет, можно закрыть глаза. Но! У меня возникли серьёзные проблемы с подключением к freebasic!
Всё остальное это ерунда.
А... Да. Моя библиотека xml.dll (название не верное, но другого пока нет).
Это по сути 3 библиотеки в одном.
Хотя я сейчас дозреваю, чтобы всё же разбить их на две.
Одна библиотека будет только с markup language работать, а в другой будет структурирование данных.
Опять же есть альтернативы... Но там просто много примочек, а то что мне нужно слишком усложнено.
Так что я пока в поиске идиального решения. Буду перетряхивать и перестраивать. Пока не удовлетварюсь.
Об анализаторе текста. Языки программирования я привёл только для примера. Хотя это тоже очень интересный проект. А выходное форматирование... Хм. Оно там будет само получаться, ровненькое и красивенькое. А при желании можно будет ещё и самодокументацию из кода выдрать.
Но вообще "анализатор текста" это опять промежуточный проект. Сделаю наверное библиотечку и консольную утилитку. Хотя об этом говорить слишком рано.
Re: библиотечка xml.dll
Походив и подумав, наконец-то сделал поиск.
Можно запросить один узел или сделать выборку узлов в список.
Сейчас поддерживаеться только один спец символ "*".
В конце запроса он обозначает, что нужно брать любой узел.
А в середине разрешает возможный набор узлов.
Например нам нужно название html-страницы. Путь до него прост
"html/head/title"
Если нам нужны все параграфы из документа, то путь такой:
"html/body/*/p
Символ "*" подразумевает возможные другие элементы.
Если же мы хотим выбрать все элементы в узле, то символ "*" ставим в конце.
"html/body/div/ul/*"
Хм. Я ещё не очень протестировал со сложными путями. Но простые примеры работали на ура.
И ещё. Не знаю, как обозначить корневой узел. В смысле что поиск нужно делать от самого верха, а не от текущего.
Думаю может быть символ "."
"./html/body/title"
Что скажите?
Какие-нибудь варианты есть?
Можно запросить один узел или сделать выборку узлов в список.
Сейчас поддерживаеться только один спец символ "*".
В конце запроса он обозначает, что нужно брать любой узел.
А в середине разрешает возможный набор узлов.
Например нам нужно название html-страницы. Путь до него прост
"html/head/title"
Если нам нужны все параграфы из документа, то путь такой:
"html/body/*/p
Символ "*" подразумевает возможные другие элементы.
Если же мы хотим выбрать все элементы в узле, то символ "*" ставим в конце.
"html/body/div/ul/*"
Хм. Я ещё не очень протестировал со сложными путями. Но простые примеры работали на ура.
И ещё. Не знаю, как обозначить корневой узел. В смысле что поиск нужно делать от самого верха, а не от текущего.
Думаю может быть символ "."
"./html/body/title"
Что скажите?
Какие-нибудь варианты есть?
Re: библиотечка xml.dll
Сейчас сижу и систематизирую имена функций.
А ещё по ходу дела пишу мануал по ним.
Хе-хе. Вот чем приходиться заниматься вместо коденья.
Хотя с другой стороны отсутствие толкового справочника отталкивает программеров, особенно от библиотек. А ведь действительно, крайне трудно юзать библиотеку, где не знаешь даже названия функций.
Система простая, функции начинаються по принципу:
XML_Doc...() - работа с документом (деревом узлов с элементами).
XML_Node...() - работа с узлами.
XML_Element...() - работа с элементами.
XML_Attrib...() - работа с атрибутами.
XML_Anchor...() - работа со списком ссылок.
Вместо точек "..." тоже разные словечки, например get или set. Например получить атрибут XML_AttribGet(), а set устанавливает атрибут.
Но это ещё не всё утрясено. Господа, если у вас есть мысли по поводу, какие функции нужны и то как их назвать пишите лучше сейчас, иначе потом будет труднее переделывать.
Не знаю, подумал, что можно сделать альтернативные названия для некоторых функций. Как по вашему, стоит добавить:
XML_DocMoveParent()
XML_DocMoveChildFirst()
XML_DocMoveChildLast()
Или нафиг не нужно дублей?
Я тут уже начал библиотеку мучать, по немногу, и от своей лени юзаю функции не по прямому назначению.
Такое можно проделать с достаточно сложной системой (как вы знаете. Ведь простые функции работают только по прямому назначению.)
Ну и это стало возможным только из-за того, что я знаю все ньюансы библиотеки.
Так вот, это начал рассказывать к тому, что я доизвращался с указателями до того, что я например могу вывести на экран или сохранить в файл список найденных узлов, причём напрямую, без дополнительных преобразований.
А ведь очень здорово получаеться, можно юзать список с результатами поиска, как новый документ.
Интересно, до чего же я докручу эту библиотеку, в конце концов!
А ещё по ходу дела пишу мануал по ним.
Хе-хе. Вот чем приходиться заниматься вместо коденья.
Хотя с другой стороны отсутствие толкового справочника отталкивает программеров, особенно от библиотек. А ведь действительно, крайне трудно юзать библиотеку, где не знаешь даже названия функций.
Система простая, функции начинаються по принципу:
XML_Doc...() - работа с документом (деревом узлов с элементами).
XML_Node...() - работа с узлами.
XML_Element...() - работа с элементами.
XML_Attrib...() - работа с атрибутами.
XML_Anchor...() - работа со списком ссылок.
Вместо точек "..." тоже разные словечки, например get или set. Например получить атрибут XML_AttribGet(), а set устанавливает атрибут.
Но это ещё не всё утрясено. Господа, если у вас есть мысли по поводу, какие функции нужны и то как их назвать пишите лучше сейчас, иначе потом будет труднее переделывать.
Не знаю, подумал, что можно сделать альтернативные названия для некоторых функций. Как по вашему, стоит добавить:
XML_DocMoveParent()
XML_DocMoveChildFirst()
XML_DocMoveChildLast()
Или нафиг не нужно дублей?
Я тут уже начал библиотеку мучать, по немногу, и от своей лени юзаю функции не по прямому назначению.
Такое можно проделать с достаточно сложной системой (как вы знаете. Ведь простые функции работают только по прямому назначению.)
Ну и это стало возможным только из-за того, что я знаю все ньюансы библиотеки.
Так вот, это начал рассказывать к тому, что я доизвращался с указателями до того, что я например могу вывести на экран или сохранить в файл список найденных узлов, причём напрямую, без дополнительных преобразований.
А ведь очень здорово получаеться, можно юзать список с результатами поиска, как новый документ.
Интересно, до чего же я докручу эту библиотеку, в конце концов!
Re: библиотечка xml.dll
Ужас! Я опять решил её переделывать!
Конечно не так глобально, как бывало до этого.
Но вполне сравнимо с последней переделкой.
Началось всё с того, что я откапал исходники одной из предшедствующих реинкорнаций библиотеки.
Там многое было сделано очень неудачно.
Но вот парсер... Конечный автомат в нём работает более удачно, чем в нынешней.
Я честно говоря с самого начала хотел делать нечто похожее. Но потом решил, что парсер может при разборе документа построить дерево.
Как показал мой печальный опыт, надежда была глупая. Я чуть было не запутался в своём коде.
И теперь парсер разбирает сначало в список.
А потом уже рекурсивная функция этот список преобразует в дерево.
Но с тех пор, в парсере остались некоторые лишние фичи, которые я и захотел прибить.
А по ходу дела решил добавить новых фичей. Например более чёткая типизация элемента. В смысле у элемента будет флаг, который сообщит о том, какого типа этот элемент.
Потом смотря на груженый код парсера, решил заюзать некоторые новые функции. Нет смысла держать дублирующий код. Когда писался парсер небыло функции сразу создающей узел с элементом.
Короче, предполагаеться что новый парсер будет работать чётче, а его код будет проще. но из-за лишних проверок и вызовов функций может наблюдаться небольшое замедление. И ладно, это не очень страшно.
Конечно не так глобально, как бывало до этого.
Но вполне сравнимо с последней переделкой.
Началось всё с того, что я откапал исходники одной из предшедствующих реинкорнаций библиотеки.
Там многое было сделано очень неудачно.
Но вот парсер... Конечный автомат в нём работает более удачно, чем в нынешней.
Я честно говоря с самого начала хотел делать нечто похожее. Но потом решил, что парсер может при разборе документа построить дерево.
Как показал мой печальный опыт, надежда была глупая. Я чуть было не запутался в своём коде.
И теперь парсер разбирает сначало в список.
А потом уже рекурсивная функция этот список преобразует в дерево.
Но с тех пор, в парсере остались некоторые лишние фичи, которые я и захотел прибить.
А по ходу дела решил добавить новых фичей. Например более чёткая типизация элемента. В смысле у элемента будет флаг, который сообщит о том, какого типа этот элемент.
Потом смотря на груженый код парсера, решил заюзать некоторые новые функции. Нет смысла держать дублирующий код. Когда писался парсер небыло функции сразу создающей узел с элементом.
Короче, предполагаеться что новый парсер будет работать чётче, а его код будет проще. но из-за лишних проверок и вызовов функций может наблюдаться небольшое замедление. И ладно, это не очень страшно.
Re: библиотечка xml.dll
Сделал фпроцедуру, чисто для отладки. Выводит все элементы, в указанном списке.
Причём ещё расписывает, где какая меточка проставлена.
А вот теперь сижу и думаю, что удалять её жалко. Но больше ни на что, кроме отладки она не пригодна.
Хм. И что бы мне сделать с этой функцией?
Причём ещё расписывает, где какая меточка проставлена.
А вот теперь сижу и думаю, что удалять её жалко. Но больше ни на что, кроме отладки она не пригодна.
Хм. И что бы мне сделать с этой функцией?
Re: библиотечка xml.dll
Обновил!
Навернул поиск. Теперь можно искать текст в узле.
А люди всё молчат... Вам сея библиотека не интересна?
Навернул поиск. Теперь можно искать текст в узле.
А люди всё молчат... Вам сея библиотека не интересна?
Re: библиотечка xml.dll
Да нет, интересна конечно!
Просто не хотелось прерывать этот завораживающий монолог
Просто не хотелось прерывать этот завораживающий монолог
Re: библиотечка xml.dll
Спасибо за отклик.
А то такое впечатление, что рассказываю, сам для себя, а всем остальным пофиг.
Ставлю иногда вопросы, дык тишина.
Вот и решаю, всякие заморочки как знаю.
Например имена функций. Или формат пути запроса для поиска узла.
Очень бы хотелось узнать мнение других, на мои задумки, пока я не начал их воплощать.
Вот например сегодня ночью думаю сделать класс, для индексирования списка.
В нём ещё всякие примочки, для сортировки, фильтрации и т.п.
Вот думаю, стоит ли заниматься этим?
А то такое впечатление, что рассказываю, сам для себя, а всем остальным пофиг.
Ставлю иногда вопросы, дык тишина.
Вот и решаю, всякие заморочки как знаю.
Например имена функций. Или формат пути запроса для поиска узла.
Очень бы хотелось узнать мнение других, на мои задумки, пока я не начал их воплощать.
Вот например сегодня ночью думаю сделать класс, для индексирования списка.
В нём ещё всякие примочки, для сортировки, фильтрации и т.п.
Вот думаю, стоит ли заниматься этим?
Re: библиотечка xml.dll
ShenZN пишет:Спасибо, Eric-s
....
Такой себе анализатор который смог бы проанализировать исходный текст программы на определенном языке (в соответствии с спецификацией к конкретному языку) и перевести его в другой (по спецификации, но для того языка на который переводится). В общем идей для реализации множество, но главное в данном случае реализация.
....
Подобных программ существует множество, но все они заточены под один конкретный язык. Данную погрешность я и пытался исправить создав универсальный формирователь исходных кодов. ......
Есть такой GOLD Parsing System
http://www.devincook.com/goldparser/
"GOLD is a free parsing system that you can use to develop your own programming languages, scripting languages and interpreters. It strives to be a development tool that can be used with numerous programming languages and on multiple platforms."
Наверное что-то подобное, я с ним не разбирался..
WBR, Andrew
Re: библиотечка xml.dll
Eric-S пишет:Спасибо за отклик.
А то такое впечатление, что рассказываю, сам для себя, а всем остальным пофиг.
Ставлю иногда вопросы, дык тишина.
Вот и решаю, всякие заморочки как знаю.
Например имена функций. Или формат пути запроса для поиска узла.
Очень бы хотелось узнать мнение других, на мои задумки, пока я не начал их воплощать.
Вот например сегодня ночью думаю сделать класс, для индексирования списка.
В нём ещё всякие примочки, для сортировки, фильтрации и т.п.
Вот думаю, стоит ли заниматься этим?
Можно сделать компонент для фильтрации html кода. Он может применяться для отбражения не всей скачанной web страницы, а только выбранных элементов, например только форм итп.
Есть такой QHTML Class to show HTML pages
http://www.wildgardenseed.com/RQDP/more_examples/Internet.zip
'************************************************************************
'* Class QHTML Version 1.0 ╘ Pascal Delcombel-2003-2008 *
'************************************************************************
' Class to show (readonly) simplified HTML pages. *
' Principle: no API no DLL *
' (in order to be switchable to Linux version) *
'************************************************************************
' LIMITS *
' > just a few of the tags supported (ie TABLE not included so far...) *
' > no frame so far *
' > maximum of 200 000 elements (because no way to do dynamically redim *
' arrays from within a QObj) *
' you may change that number to smaller or greater one (and smaller *
' or greater html pages) through constant htmlMaxElements, here below* *
' > no formulaire (button, field, ...) *
' > no download !! *
' > see OnLoadImage to use external routine in order to load pictures *
' like jpeg , GIF and other image files *
-------------------------------
Написан на Rapid-Q basic, так что разобраться легко.
Практически это броузер на собственном движке. Можно в принципе его доделать и поконкурировать с MSIE и Firefox
Но в общем-то нужно написать библиотеки парсеров XML, html и получить на них feedback от пользователей, а они уже понапишут, что еще хотелось бы.
Re: библиотечка xml.dll
Спасибо за идеи. В принципе нечто одобное задумывалось. Но к сожалению сейчас я это всё отложил.
Если бы freebasic был бы более объектноориентированный было бы проще. А сейчас даже не знаю.
Я ещё 7 апреля в эту тему написал большой развёрнутый ответ, но из-за моих глобальных проблем с инетом, он просто не ушел. И я даже не смог сохранить его.
А сейчас уже даже не вспомню, что хотел сказать.
Если бы freebasic был бы более объектноориентированный было бы проще. А сейчас даже не знаю.
Я ещё 7 апреля в эту тему написал большой развёрнутый ответ, но из-за моих глобальных проблем с инетом, он просто не ушел. И я даже не смог сохранить его.
А сейчас уже даже не вспомню, что хотел сказать.
Права доступа к этому форуму:
Вы не можете отвечать на сообщения