Я согласен с Карлом в том, что XML слишком много подробностей по сравнению с блоком Ребола, но нет эквивалента библиотеки XML DOM для блока Rebol или я ошибаюсь?Rebol DOM, как библиотека для блока Ребола?
Как я могу перебирать иерархию блока?
Я согласен с Карлом в том, что XML слишком много подробностей по сравнению с блоком Ребола, но нет эквивалента библиотеки XML DOM для блока Rebol или я ошибаюсь?Rebol DOM, как библиотека для блока Ребола?
Как я могу перебирать иерархию блока?
Ребвольная абстракция блока! не является достаточным для получения покрытия DOM. Один технический барьер состоит в том, что вы не можете получить единственный уникальный «родительский» блок, поскольку он может быть псевдонимом в нескольких местах. Так, например:
>> foo: [div id: "foo"] == [div id: "foo"] >> bar: [div id: "bar"] == [div id: "bar"] >> paragraph: [p ["Hello"]] == [p ["Hello"]] >> append foo append/only [contents:] paragraph == [div id: "foo" contents: [p ["Hello"]]] >> append bar append/only [contents:] paragraph == [div id: "bar" contents: [p ["Hello"]]] >> append second paragraph "World" == ["Hello" "World"] >> foo/contents == [p ["Hello" "World"]] >> bar/contents == [p ["Hello" "World"]]
Там нет никакого способа, чтобы написать функцию, которая может осмысленно ответить на такие вопросы, как «получить родителем бар/содержание». Хотя у вас есть что-то, что было проанализировано и введено в структуру, которую вы можете манипулировать, это не структура с конкретными проектами, соответствующими DOM.
Чтобы свободно обойти его, как дерево, вам нужно будет собрать кучу объектов, связанных со ссылками. Это в значительной степени то, что делает каждый другой язык, поэтому бесплатного обеда здесь нет. С положительной стороны, часть разбора позаботится о вас, и есть небольшая манипуляция, которую вы можете сделать без библиотеки DOM. Это лучший способ начать, чем текст!
С другой стороны, это может показаться настолько свободной формой, что вам интересно, какие варианты использования для нее были оптимизированы. Ответ в том, что он конкретно не был оптимизирован для чего угодно, кроме диалектов Rebol. :) Циркулярное рассуждение, но оно породило свойства, которые делают язык интересным для изучения и который делает его своего рода «вневременным».
Вы можете найти аспекты extended tag proposal и обсуждение, которое оно вызвало для освещения.
Подумайте обо всем этом и вернетесь к нему в один прекрасный день спасибо :) –
Вы просто хотите спуститься через структуру блока или вам нужно вернуться к родителям и т. Д.? – Sunanda
Ну, я хочу все, конечно ... если возможно;) –