Глава 1. Html | |
---|---|
JS Автор Сообщений: 12264 Откуда: Эстония Дата регистрации: 04.09.2000 |
Сокращена насколько возможно
------------------ Knowledge is better than ignorance! Website: juri.foxhelp.eu Исправлено 1 раз(а). Последнее : JS, 16.07.08 18:34 |
Re: Глава 1. Html | |
---|---|
has Сообщений: 175 Откуда: Томск Дата регистрации: 24.07.2004 |
На днях купил Вашу книгу - посоветовали на форуме, как хороший учебник, в том числе, по HTML-DOM.
Первая глава, действительно, посвящена именно HTML. И там даже обещано, что "Более подробно со свойствами и методами объектов HTML-документов вы можете ознакомиться в приложениях 1 и 2." Вот только в приложениях 1 и 2 нет ни слова о HTML! Возможно, это результат того самого "сокращения". А можно где-нибудь найти эти исчезнувшие описания свойств и методов HTML-DOM. Именно эта задача сейчас всплыла. Я никогда этой темой не занимался, поэтому для меня эта структура - темный лес. А на MSDN так все запутано - концов не найдешь. |
Re: Глава 1. Html | |
---|---|
has Сообщений: 175 Откуда: Томск Дата регистрации: 24.07.2004 |
Обнаружил в этой главе ошибку.
Там где идет речь о различиях коллекций childNodes и children, приведен пример:
Тэг "<b>параграф</b>" входит в коллекцию childNodes и в коллекцию children. |
Re: Глава 1. Html | |
---|---|
JS Автор Сообщений: 12264 Откуда: Эстония Дата регистрации: 04.09.2000 |
Увы, часть материала "ушла".
Дополнительные материалы, которые не вошли в книгу будут на сайте juri.foxhelp.eu Сейчас занимаюсь подготовкой. Однако вы можете задать свои вопросы или здесь или в ЛС. По второму сообщению - зависит от парсера. Более подробно объясню позже - нужно уйти с работы пораньше. ------------------ Knowledge is better than ignorance! Website: juri.foxhelp.eu Исправлено 1 раз(а). Последнее : JS, 06.04.09 17:57 |
Re: Глава 1. Html | |
---|---|
has Сообщений: 175 Откуда: Томск Дата регистрации: 24.07.2004 |
Приблизительные сроки известны? на что ориентироваться. Хотелось бы описание объектов, методов, свойств HTML DOM. Пока собираю информацию по крупицам. А так хотелось бы знать: какие объекты могут входить в коллекции? какие методы и свойства у них есть? И даже (вот наглость-то) что они значат? Очень хотелось бы узнать что смотреть для проверки корректности загрузки HTML-файла?
Очень жду объяснения. Выходит, что результат работы с файлом зависит от каких-то внешних условий? Каких? Версия Фокса, операционка, IE... |
Re: Глава 1. Html | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
has, установите себе MSDN. Там найдете много интересного
------------------ Совершенство - это не тогда, когда нельзя ничего прибавить, а тогда, когда нечего убавить. |
Re: Глава 1. Html | |
---|---|
has Сообщений: 175 Откуда: Томск Дата регистрации: 24.07.2004 |
Похоже, что я чего-то сильно не понимаю. MSDN - это ведь сайт подразделения Microsoft поддержки разработчиков. Так как его можно "установить" ? Я опять чего-то сильно не знаю?... |
Re: Глава 1. Html | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
MSDN это прежде всего набор документации. Он распространяется на дисках (причём есть несколько видов - в разной степени обрезанных - например в одной только .NET+VS описывется). Самое неприятное в этом деле - то что новые версии выходят достаточно регулярно (раз в квартал) - и надо либо оформлять подписку (чтоб тебе на дисках слали), либо постоянно качать образы дисков (несколько гигов), либо пользоваться "устаревшей" версией
Конечно же этот набор доступен и в онлайн - со специализированного сайта МС. Плюсы - доступ к самой свежей версии, бесплатность, меньший объём трафика (не надо качать ВСЁ если интересует пара-тройка статей). Ну минус очевиден - нужен инет под рукой ------------------ WBR, Igor |
Re: Глава 1. Html | |
---|---|
has Сообщений: 175 Откуда: Томск Дата регистрации: 24.07.2004 |
Юрий, все-таки очень хочется услышать Ваше объяснение по этому вопросу. Сразу как-то не сообразил, а вот стал работать с HTML DOM и понял: ведь если Вы правы и при каких-то условиях (очень хочется узнать: каких?) подчиненные узлы разделяются (не пересекаясь) между коллекциями childNodes и children, то это означает полную неприменимость данной технологии к обработке HTML-файлов. Ведь в этом случае строки:
А это, по-моему, сильно неверно! |
Re: Глава 1. Html | |
---|---|
JS Автор Сообщений: 12264 Откуда: Эстония Дата регистрации: 04.09.2000 |
Александр!
Все объясняется достаточно просто - разницей в версиях библиотеки mshtml.dll используемой при написании книги и текущей. Плюс наличие частичной реализации объектной модели DOM второго уровня в новой версии. Цитата:Вовсе нет. Достаточно дополнительно использовать очень полезное свойство nodeType и тогда все станет на свои места. ------------------ Knowledge is better than ignorance! Website: juri.foxhelp.eu |
Re: Глава 1. Html | |
---|---|
has Сообщений: 175 Откуда: Томск Дата регистрации: 24.07.2004 |
Спасибо, Юрий! Уже конкретнее, но не яснее и, тем более не радостнее. Если я правильно понимаю, то версия mshtml.dll определяется операционной системой? И у пользователя может быть иной результат разбора файла, чем у меня? И как в таком случае добиться однозначной обработки файла? Хотелось бы понять как использовать свойство nodeType? Если я правильно понимаю, то в обоих случаях результат (набор коллекций) будет один: childNodes: |nodeType| innerHTML | data --------------------------------------------- Item(0)| 3 | | ' , ' --------------------------------------------- Item(1)| 3 | | '.' --------------------------------------------- children: |nodeType| innerHTML | data --------------------------------------------- Item(0)| 1 | <b>Казнить </b> | --------------------------------------------- Item(1)| 1 | <b> нельзя </b> | --------------------------------------------- Item(2)| 1 | <b> помиловать</b> | ---------------------------------------------И как тут определить взаимный порядок следования элементов? Где стоит запятая? Казним или милуем? ;) |
Re: Глава 1. Html | |
---|---|
JS Автор Сообщений: 12264 Откуда: Эстония Дата регистрации: 04.09.2000 |
Появился еще один вопрос связанный с DOM и с разной реализацией в mshtml.dll
Задал несколько вопросов команде, посмотрим, что они ответят. ------------------ Knowledge is better than ignorance! Website: juri.foxhelp.eu |
Re: Глава 1. Html | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Вообще-то, в XML (по хорошему) не должен учитываться порядок следования элементов. Данные должны различаться только по тегам и содержимому. "старый" html в принципе не является xml-совместимым форматом (уже одно допущение непарных тегов противоречит стандарту).
Я честно говоря не берусь сказать как ПРАВИЛЬНО парсер должен трактовать твой пример. Возможно даже что он может сцепить оба знака препинания в 1 элемент, т.к. они по-сути являются содержимым одного тега. А может он должен рапортовать о невалидной структуре... Итог - наверное не совсем корректно будет разбирать html при помощи xml-парсера - т.е. ожидать, что парсер будет учитывать нечто выходящее за рамки стандарта xml... Кстати, как я понимаю, создать при помощи DOM подобную html-ную структуру тоже невозможно. P.S. С другой стороны есть ведь previousSibling, nextSibling - для навигации в рамках одного уровня... ------------------ WBR, Igor Исправлено 1 раз(а). Последнее : Igor Korolyov, 13.04.09 18:00 |
Re: Глава 1. Html | |
---|---|
has Сообщений: 175 Откуда: Томск Дата регистрации: 24.07.2004 |
Структура однозначно валидна. Так с чего бы парсеру так рапортовать?! А при чем тут XML? 8-/ Речь идет о DOM технологии, которая предназначена для работы не только с XML-хранилищами данных. В том-то и дело, что previousSibling и nextSibling осуществляют "навигацию в рамках одного уровня" некоторой коллекции. А о составе коллекций и идет разговор. А проверить не могу, т.к. у меня коллекция childNodes формируется не так как описано в книге. |
Re: Глава 1. Html | |
---|---|
JS Автор Сообщений: 12264 Откуда: Эстония Дата регистрации: 04.09.2000 |
Игорь! Речь идет о html и парсингом занимается mshtml.dll. XML - парсингом занимаются другие библиотеки msxmln.dll (n - номер версии) ------------------ Knowledge is better than ignorance! Website: juri.foxhelp.eu |
Re: Глава 1. Html | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Да, не учёл что тут html dom... Почитал малёхо - по стандарту каждый кусок текста в рамках тега является отдельным узлом особого типа "#text".
Даже попробовал нарисовать простенький скриптик - всё получилось в рамках стандарта, как я понимаю - и порядок на месте Надеюсь форум не поломается от всталенного html-я со скриптом
------------------ WBR, Igor |
Re: Глава 1. Html | |
---|---|
has Сообщений: 175 Откуда: Томск Дата регистрации: 24.07.2004 |
В том-то и дело, Игорь, что и у меня так получается! И как я понимаю, только так и должно быть. Но вот в книге написано, что в коллекцию childNodes не должны попадать элементы-тэги (в данном случае - управление шрифтом). Их место в коллекции children. В этом случае результат Вашего примера должен быть:
|
Re: Глава 1. Html | |
---|---|
JS Автор Сообщений: 12264 Откуда: Эстония Дата регистрации: 04.09.2000 |
Как я и говорил проблема в версиях mshtm.dll. Во время написания книги использовалась старая версия mshtml.dll. Откатить нотбук уже невозможно. В общем это старая история - коллекция childNodes в свое время не поддерживалась вообще не поддерживалась IE, который использует эту библиотеку для парсинга документа и выстраивания дерева. Далее были введены исправления. И тоже было непонятно с исключением тэгов форматирования текста из коллекции childNodes. Поэтому верно следующее: коллекция childNodes должна включать в себя все дочерние узлы, включая текстовые. Однако текстовые узлы не должны попадать в коллекцию children. Это справедливо для текущей версии mshtml.dll. Эта же версия включена в Windows 7 и пример, приведенный в книге неверно отображает число дочерних узлов. P.S. Что можно сказать в свое оправдание? Все что написано было создано и проверено. Смена версий в машине произошла 12.07.2008, когда глава была уже отправлена в редакцию. Получил подтверждающий ответ от команды, а также ответ на еще один вопрос, который уже будет прокомментирован на сайте книги с примерами. ------------------ Knowledge is better than ignorance! Website: juri.foxhelp.eu Исправлено 1 раз(а). Последнее : JS, 15.04.09 12:52 |
Re: Глава 1. Html | |
---|---|
has Сообщений: 175 Откуда: Томск Дата регистрации: 24.07.2004 |
Юрий, спасибо!
Все понятно. Один ма-а-а-ленький вопросик: с какой версии mshtm.dll стал "новым"? Он привязан к IE или Windows? Ну чтоб сердце спокойно было... Ну и заодно уже: чем проверять успешность загрузки html-файла? |
Re: Глава 1. Html | |
---|---|
JS Автор Сообщений: 12264 Откуда: Эстония Дата регистрации: 04.09.2000 |
Вообще-то это парсер IE и обновляться библиотека должна с ним. Но выходит, что библиотека обновляется и вне его обновлений, если судить по логам и по дате изменения самого файла. Но кажется понял в чем проблема. Чуть позже выложу - сейчас это пишется на Winodws 7. Данные с нотбука, на котором писалась книга. Дата создания каталога и перенос в него файлов примеров 4 апреля 2008 [attachment 7848 chapter1_1.jpg] На этот момент была действующей версия 6.0.2900.2963 или ниже после чего в середине апреля был установлен SP и версия сменилась на 6.0.2900.5512. Кроме того, в 42 модификациях файла было замечено изменение, сделанное приложением FrontPage 2003 (только по датам файлов, что может быть не совсем корректно). [attachment 7849 chapter1_2.jpg] "Собака порылась" в какой-то из версий до SP. Если загрузка документа производится через InternetExplorer.Application, то отслеживается readyState, если загружается в объект, созданный через createobject("htmlfile"), то программа должна ждать завершения записи файла в объект. ------------------ Knowledge is better than ignorance! Website: juri.foxhelp.eu Исправлено 2 раз(а). Последнее : JS, 15.04.09 19:57 |
© 2000-2024 Fox Club  |