2009-10-29 2 views
0

나는 XML이 Rebol의 Block에 비해 너무 길다는 것에 Carl에 동의하지만, Rebol의 Block에는 XML DOM 라이브러리가 없다는 것에 동의 하는가?Rebol의 블록과 같은 Rebol의 DOM 라이브러리?

블록 계층 구조를 반복 할 수 있습니까?

+0

방금 ​​블록 구조를 통해 내려 가고 싶습니까, 아니면 다시 부모 등으로 돌아 가야합니까? – Sunanda

+0

글쎄, 나는 물론 모든 것을 원한다면 ... 가능하다면) –

답변

2

Rebol의 런타임 추상화! 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"]] 

의미 "GET-부모 바/내용"와 같은 질문에 대답 할 수있는 기능을 쓸 수있는 방법은 없습니다. 구문 분석되어 구조로 가져온 것을 가지고 있지만 DOM과 일치하는 특정 디자인을 가진 구조는 아닙니다.

트리를 자유롭게 주위를 기어 오르려면 참조로 연결된 많은 개체를 만들어야합니다. 그것은 다른 모든 언어들이하는 것과 거의 같기 때문에 여기서 무료 점심을 먹지 않아도됩니다. 더하기 측면에서, 파싱의 일부는 당신을 위해 돌봐 주며 DOM 라이브러리 없이는 할 수있는 조작이 꽤 있습니다. 텍스트보다 시작하는 것이 더 좋은 방법입니다!

불리한 점은 그것이 자유로운 형태로 보일 수 있으므로 어떤 최적화 된 사용 사례가 궁금합니다. 대답은 구체적으로 이 아니며 Rebol을 방언하는 것 이외의 다른 용도로 최적화되어 있다는 것입니다. :) 순환 추론이지만 언어 학습을 흥미롭게 만들고 속성을 "시대를 초월한"것으로 만듭니다.

extended tag proposal의 특징과 밝혀진 토론 내용을 확인할 수 있습니다.

+0

이것에 대해 생각하고 어느 날 고마워 할 것이다. –