2011-08-27 5 views
1

나는 많은 "cleaned"할 필요가있는 user-generated 요소들을 가지고 있으며, cleanup이 XSLT transform으로 표현되기를 바란다.DOM 요소에 XSLT 변환을 적용 할 수 있습니까?

웹 페이지의 일부에 XSLT 변환을 적용 할 수 있습니까? (그리고 well-formed인지 확인하기 위해 먼저 tagsoup와 비슷한 것으로 소스 요소를 검사해야합니까?)

모든 예제는 Ajax를 통해 XML 파일과 XSL 파일을 가져 오는 것에 대한 것입니다. 하나는 다른 하나에 대해 실행되지만 DOM의 하위 집합을 가져 와서 XSLT를 실행하지 않습니다. 할 수 있습니까?

답변

1

당신이하고 싶은 컨텍스트가 무엇입니까? 문서 ("웹 페이지")가 이미 브라우저 창에로드되어 있습니까? 일부 브라우저는 Javascript에 API를 노출하여 DOM 노드에 XSLT를 적용합니다. Mozilla는 API를 소개했으며 Opera와 같은 다른 브라우저는이를 복사했습니다 : https://developer.mozilla.org/en/using_the_mozilla_javascript_interface_to_xsl_transformations.

물론 브라우저 내부에서 실행되는 Saxon-CE가 있습니다 : http://www.saxonica.com/ce/doc/contents.html. 심지어 DOM 노드에 XSLT 2.0을 적용 할 수도 있습니다.

+0

모질라 API는 내가 뭘 찾고있는 것과 똑같아 보인다. 브라우저 간 솔루션이 있는지 알고 있습니까? (나는 Saxon CE에 대해 들었다. 그러나 그것은 여전히 ​​알파 다. 다운로드가 많이 필요하고 상용 라이센스를 요청할 것이다. 브라우저 내에서 XSLT 1.0 변환을 사용한다. 필요한 것). – Bambax

+0

브라우저 간 접근법에 관해서는 Opera가 Mozilla API도 지원한다고 말했기 때문에 Chrome과 Safari가 표면에 있다고 생각하지만 실행시 문제가 발생합니다 (http : // stackoverflow 참조). com/questions/6985048/transforming-html-nodes-with-xslt-in-chrome-webkit). IE는 해당 API를 지원하지 않으며 XHTML 및 SVG DOM 문서를 지원하는 IE 9에서도 IE가 구현하는 DOM으로 XSLT를 적용 할 수 있다고는 생각하지 않습니다. Microsoft의 COM 기반 XSLT 프로세서가 구현하는 DOM 인 MSXML과 완전히 분리되어 있습니다. 각각 XSLT 입력 트리로 사용됩니다. –

0

HTML이 XML이 아니므로 HTML 페이지에서 XSLT 변환을 수행 할 수 없다고 생각합니다. 그러나 XHTML 페이지에서이 작업을 수행 할 수 있습니다.

관련 문제