2011-02-24 5 views
1

바보 같은 상황에 처해 있습니다 ... 기관용 서버에서 실행되도록 XSLT 변환을 수행하는 응용 프로그램을 가져야하고이 서버는 XSL을 사용하지 않고 php5를 구성했습니다. .. 호스팅 솔루션을 변경하는 것은 불행히도 옵션이 아니며 서버를 담당하는 IT 담당자는이를 재구성하고 XSL을 사용할 용의가 없습니다.XSL 확장을 사용하지 않고 php5의 XSL 변환

여기 내 질문은 다음과 같습니다. XSL을 사용하지 않고 XSL 변환을 수행 할 수 있습니까? (정확히 말하면 XML 문자열을 XSL 파일로 변환해야합니다.) DOM을 검사했지만 예제에서는 실제 스크립트 (XSLTProcessor)에서 치명적인 오류를 유발하는 클래스를 사용합니다.

모든 의견을 많이 주시면 감사하겠습니다.

+1

그래서 XSLT 프로세서없이 변환을 수행하는 방법이 궁금 할 것입니다. (!) –

답변

1

PHP 구현의 XSLT 프로세서에 대해 들어 본 적이 없습니다. 존재한다면, 아마도 복잡하고, 도청되고, 유지가되지 않을 가능성이 높습니다.

변환 작업을 수행하는 원격 서버를 사용하거나 (해당되는 경우) exec()을 사용하여 명령 행 처리기를 실행할 수있는 대체 솔루션을 찾아야합니다.

변환의 복잡성에 따라 PHP에서 SimpleXML을 사용하는 것이 좋습니다. 나는이는 현실적인 해결책 만약 당신이 물론

foreach ($foo->bar as $bar) { 
    echo $bar['baz']; 
} 

사용할 수 있습니다 단순히 대신

<xsl:for-each select="/foo/bar"> 
    <xsl:value-of select="@baz" /> 
</xsl:for-each> 

같은 것을 사용하는, 미친 것이라고, 여기에 XSLT 프로세서를 만드는 얘기가 아냐 귀하의 스타일 시트는 매우 기본/간단합니다.

+0

감사합니다. Josh! 불행히도, XSL은 너무 복잡하여 SimpleXML을 현명하게 사용하지 못했습니다. 기본 exec() 솔루션이 제대로 작동하는 것으로 보입니다. – Hemka

2

XML/XSLT를 처리하는 PEAR 패키지가 있습니다. 나는 그들 중 누구에게도 개인적인 경험이 없다. 당신이 배 패키지를 얻기 위해 배를 설치할 필요가 없습니다

http://pear.php.net/packages.php?catpid=22&catname=XML

주, 당신은 수동으로 다운로드 할 수 있습니다.

+0

많은 (아마도 대부분의) PEAR 패키지가 다운로드되고 압축이 풀린 상태로 잘 작동하지만, 일부는 인스톨러가 YMMV 같은 포함 경로를 대체하도록 요구합니다. 팁을 주신 덕분에 –

+0

! 불행히도이 경우에는 패키지가 적합하지 않은 것처럼 보이지만 PEAR을 염두에 두겠습니다! – Hemka