2010-02-14 3 views
6

E4X (Ecma-357)는 XML 리터럴을 최우선 기본 요소로 추가하는 ECMAScript의 확장입니다. 멋지지만 Mozilla 및 Adobe 지원 (V8 및 IE 지원없이)만으로도 E4X는 현대적인 브라우저로 사용자를 지원해야하는 웹 개발자의 관점에서 사실상 죽었습니다.JavaScript의 XML 리터럴?

JavaScript에서 XML 리터럴을 구현하는 데 수행되는 다른 작업은 무엇입니까? 자바 스크립트에서 XML 리터럴 또는 E4X와 비슷한 것을 얻을 수있는 방법이 있습니까? 프레임 워크 용 플러그인일까요?

다른 날 (asana.com/Luna)에 JavaScript 리갈을 구현 한 LunaScript가 있습니다. 그게 좋은데, 아마 아사나에서 일하지 않을 것이고 따라서 LunaScript를 쓰지 않을 것입니다.

http://xmljs.sourceforge.net/

XML for <SCRIPT> 웹 응용 프로그램 디자이너를 활용 크로스 플랫폼 애플리케이션을 구현하기 위해 설계된 강력한 표준을 준수하는 자바 스크립트 XML 파서입니다 :

+2

사이드 노트 : E4X는 액션 스크립트 3에서 구현됩니다. – icktoofay

답변

2

자바 스크립트 XML을위한 오픈 소스 프로젝트가있다 클라이언트 측 XML 데이터 조작

* A standards-compliant W3C DOM Level 2 processor 
* An XPath processor 
* A standards-compliant SAX processor 
* A simple (classic) DOM processor 
* Proxies for XML retrieval from any domain 
* Utilities for XML and application development 

XML for <SCRIPT>는 무료 소프트웨어이며 GNU 약소 일반 공중 사용 허가서 (LGPL), 오픈 소스 라이센스의 조건에 따라 distrubuted된다 XML for <SCRIPT>을 포함, 완벽한 툴 세트를 제공합니다.

2

개인적으로 필자는 XML 리터럴에 전혀 이점이 없다고 생각합니다. 그렇지 않으면 백 슬래시가 슈퍼 고통 것을 : 자바 스크립트에 정규식 리터럴을 추가하기위한 합리적인 근거가 있었다

var el= new XML('<foo>bar<baz/></foo>'); 

:

var el= <foo>bar<baz/></foo>; 

정말 눈에 띄게 더 이상 없습니다. (개인적으로는 원시 문자열을 선호했을지라도) 백 슬래시는 XML에서 흔히 사용되는 것이 아니기 때문에 거기에 그러한 정당화가 있다고 생각하지 않습니다.

XML의 전체 구문 (복잡한!)을 기본 언어 구문으로 추가하는 것은 이점이 없습니다. 실제로 실제로는 grievous security problems이 발생했습니다.

나는 E4X가 사라 졌으면 좋겠다.

+2

템플릿은 어떻게됩니까? JavaScript 객체의 모든 마크 업을 객체가 반환하도록하려면 어떻게해야합니까? XML 리터럴을 사용하여 마크 업을 선언 할 수 있으며 마크 업이 div 태그 두 개 이상인 경우 리터럴로 작성하는 것이 훨씬 쉽습니다. – JamesBrownIsDead

+1

예, 저는 HTML 템플리트 작성을 위해 E4X를 사용할 계획입니다. 템플릿 언어로서, 그것은 매우 강력하고 우아합니다. JS에 XML을 포함시키고 XML에 XML을 추가 할 수 있습니다. – dlaliberte

+0

링크가 더 이상 작동하지 않습니다. "귀하의 클라이언트는이 서버에서 URL/p/doctype/wiki/ArticleE4XSecurity를 ​​가져올 수있는 권한이 없습니다." – CoderDennis

1

은 코드 재 작성을 통해 모든 자바 스크립트 엔진에서 XML 리터럴을 지원합니다.

https://github.com/laverdet/js-xml-literal

구문 그러나 API 모방 DOM 더 밀접 E4X의 부분 집합이다. 클라이언트 측에서 XML 리터럴을 사용하여 브라우저의 DOM과 직접 상호 작용할 수 있습니다. 서버 측 (NodeJS)에서는 문자열로 플러시하기 전에 가상 DOM을 조작 할 수 있습니다.