문제

클라이언트측(브라우저 기반) XSL 변환을 지원하기 위해 XML 포함 JavaScript를 실행할 수 있습니까?어떻게 이루어지며 얼마나 공식적인가요?

Microsoft의 XML DOM 객체는 서버측에서 이를 허용합니다(예:ASP/ASP.NET에서).

설명:HTML DOM 스크립팅이 수행되었다는 의미는 아닙니다. ~ 후에 문서가 변환되었습니다. XSL 변환을 의미하는 것도 아닙니다. 시작됨 브라우저의 JavaScript로(예:W3Schools 페이지에 표시되는 내용).변환 중에 XSL 내에 있는 실제 스크립트 블록을 참조하고 있습니다.

도움이 되었습니까?

해결책

변환을 돕기 위해 JavaScript를 포함하려면 <xsl:script>를 사용할 수 있지만 그것은 제한되어 있다 Microsoft의 XML 개체 구현에 적용됩니다.여기에 :

scripted.xml:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="scripted.xsl"?>
<data a="v">
    ding dong
</data>

스크립팅된.xsl:

<?xml version="1.0" encoding="ISO-8859-1"?>
<html xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:script implements-prefix="local" language="JScript"><![CDATA[

    function Title()
    {
        return "Scripted";
    }

    function Body(text)
    {
        return "/" + text + "/";
    }

]]></xsl:script>
<head>
    <title><xsl:eval>Title()</xsl:eval></title>
</head>
<body>
    <xsl:for-each select="/data"><xsl:eval>Body(nodeTypedValue)</xsl:eval></xsl:for-each>
</body>
</html>

Internet Explorer의 결과(또는 COM/.NET에서 MSXML을 사용하는 경우)는 다음과 같습니다.

<html>
<head>
    <title>Scripted</titlte>
</head>
<body>
    /ding dong/
</body>
</html>

일반적인 XSL 템플릿 구성을 지원하지 않는 것으로 보이며 루트 노드를 추가하면 MSXML이 작동하지 않는 일종의 표준 모드로 전환됩니다.

표준 XSL에 동등한 기능이 있는지는 확실하지 않지만 꿈은 있습니다.

다른 팁

XML 문서에 포함된 JavaScript 코드를 실행할 수는 없을 것 같습니다.언급한 helios와 마찬가지로 JavaScript를 사용하여 변환을 수행할 수 있습니다.

JavaScript는 대부분의 경우 CDATA로 내장되어 있으며 일반적으로 사용됩니다. ~ 후에 XSL 변환이 발생했습니다.내가 올바르게 이해했다면 XML에 실행 가능한 <script> 태그가 있어야 한다는 뜻입니다.

변환에 대해 더 많은 제어가 필요한 경우 XSL 매개변수 및 템플릿을 사용할 수 있습니다.XSLT에서 이러한 값을 설정한 다음 exec()에 전달할 수 있습니다.모질라가 지원합니다 매개변수 설정 XSL에서는 작동하지만 다른 브라우저에서는 잘 모르겠습니다.

또한 크로스 브라우저 JavaScript/XSLT는 골치 아픈 일입니다. Mozilla의 JavaScript/XSLT 인터페이스 와는 매우 다르다 IE의, 따라서 다음과 같은 브라우저 독립적인 라이브러리에 의존하고 싶을 수도 있습니다. jQuery의 XSLT.

예.브라우저에 따라 다르지만 Javascript를 사용할 수 있습니다.w3schools.com에는 작지만 실용적인 튜토리얼이 있습니다.XSLT 튜토리얼의 일부입니다.

그 페이지:

http://www.w3schools.com/xsl/xsl_client.asp

XSLT 튜토리얼:

http://www.w3schools.com/xsl/default.asp

저보다 그 사이트가 더 도움이 될 것 같아요.행운을 빌어요!

"공식"이 "표준 기반"을 의미한다면 원하는 것을 찾을 수 있을지 의심 스럽습니다. 설명하는 것은 스타일 시트 구문 분석 중에 구문 분석되고 실행되는 사용자 에이전트 스크립팅 언어입니다.Javascript에서 더러운 작업을 수행하여 XSLT를 단순화하는 것이 목표라면 Javascript에서 XSLT를 생성한 다음 클래스 래퍼를 사용하여 브라우저의 자체 XSLT 파서를 통해 결과를 구문 분석하는 것이 더 나을 수 있습니다.

물론 이는 귀하가 서명한 것보다 훨씬 더 많은 작업이지만 그렇게 하고 싶다고 확신한다면 다음을 살펴보겠습니다. John Resig의 Javascript 마이크로 템플릿 템플릿 친화적인 XSLT를 자바스크립트에 동적으로 저장합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top