2011-11-01 2 views
0

나는 PHP 사이트에 xslt를 통합하는 방법을 알고 싶습니다. 비록 하나 개의 아이디어 ...XSLT. PHP 사이트에 통합

PHP 스크립트 직렬화 데이터를 가지고 있고 그것을

<?php 
echo ' 
<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="test.xsl" ?> 
<test>TEST</test> 
'; 
?> 

에코 XML 출력이 그것은 완벽하게 잘 작동

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output 
    method="html" 
    doctype-public="-//W3C//DTD HTML 4.01//EN" 
    doctype-system="http://www.w3.org/TR/html4/strict.dtd" 
    indent="yes"/> 

<xsl:template match="/"> 
<h1> 
<xsl:value-of select="test" /> 
</h1> 
</xsl:template>  
</xsl:stylesheet> 

text.xsl에 의해 변환됩니다 만, 나는 이것이 좋은 방법인지 확신 할 수 없습니다. 나는 몇몇 끝을 얻게 행복 할 것이다.

UPD # 1 로버트는 PHP 확장을 사용하도록 제안했습니다. DOM에

<?php 
$xml='<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="test.xsl" ?> 
<test>TEST</test>'; 

$xslDoc = new DOMDocument(); 
$xslDoc->load("test.xsl"); 

$xmlDoc = new DOMDocument(); 
$xmlDoc->loadXML($xml); 

$proc = new XSLTProcessor(); 
$proc->importStylesheet($xslDoc); 
echo $proc->transformToXML($xmlDoc); 
?> 

외부 XSL 파일과 XML을 생성 PHP가있다시피

, 부하 모두, XML 및 외부 XSL하고 XSLTProcessor에 전달합니다 : 그리고 여기에 내가 지금 무엇을 가지고 있습니다. 이것은 내 필요에 맞는 것입니다. 그러나 이것이 "좋은 습관"일까요?

답변

0

이미 XML이 있으므로 PHP를위한 XSLT 확장 중 하나를 살펴 보는 것이 좋습니다. 클라이언트가 다중 왕복을 피하는 방법과 함께 사용할 수없는 방법을 사용하는 것입니다 매개 변수를 XSLT에 추가합니다.

매개 변수 전달을 허용하지만 브라우저 호환성 문제로 인해 클라이언트 쪽에서 XSLT를 실행하는 데 Javascript를 사용할 수도 있습니다. 클라이언트 측은 또한 사용자가 XML과 XSLT 콘텐츠를 모두 다운로드한다는 것을 의미합니다. 서버 측 환경에 의존하는 것이 일반적으로 더 낫다. 당신이 통제 할 수 있습니다.

+0

빠른 답장을 보내 주셔서 감사합니다. 나는 갱신을했다. 이게 당신이 의미 한거야? –