Perl에 가장 적합한 XSLT 엔진은 무엇입니까?
문제
많은 XSLT 엔진이 Perl과 잘 작동하는지 알고 싶습니다.
Apache (2.0)와 Perl을 사용하고 PDFS 및 XHTML을 얻고 싶습니다.
저는 이런 종류의 프로젝트를 처음 사용하므로 모든 의견이나 제안을 환영합니다.
감사.
Google에서 간단한 검색을 수행하면 많은 것을 발견했으며 더 많은 것이 있다고 생각합니다.
- http://www.mod-xslt2.com/
- http://xml.apache.org/xalan-j/
- http://saxon.sourceforge.net/
- http://www.dopscripts.com/xslt_parser.html
귀하의 경험에 대한 모든 의견은 환영받을 것입니다.
해결책
첫 번째 실수 - CPAN에서 검색하십시오, Google이 아닙니다 :)
이것은 많은 결과를 낳지 만 CPAN의 문제를 강조하고, 하나 이상의 해결책이 있으며, 어떤 해결책이 항상 작동하고, 버려 졌는지, 깨진, 느리거나, 무엇이든 항상 명확하지는 않습니다.
그리고 혼란스럽게도, 최고의 답변 (또는 적어도 최고 중 하나)이 페이지에 나옵니다. 네 결과 중 :( 다른 사람들이 제안한 것처럼 xml :: libxslt 강력하고 일을합니다.
use XML::LibXSLT;
use XML::LibXML;
my $parser = XML::LibXML->new();
my $xslt = XML::LibXSLT->new();
my $source = $parser->parse_file('foo.xml');
my $style_doc = $parser->parse_file('bar.xsl');
my $stylesheet = $xslt->parse_stylesheet($style_doc);
my $results = $stylesheet->transform($source);
print $stylesheet->output_string($results);
결과를 파일로 출력하려면 이것을 추가하십시오.
#create output file
open(my $output_xml_file_name, '>', 'test.xml');
print $output_xml_file_name "$results";
그래도 멋진 일을하고 싶지 않다면 xml :: libxslt :: 쉬운, 본질적으로 위의 방법을 한 메소드 호출로 랩핑합니다 (그리고 엘크. 교육 소스를 확인하십시오!).
use XML::LibXSLT::Easy;
my $p = XML::LibXSLT::Easy->new;
my $output = $p->process( xml => "foo.xml", xsl => "foo.xsl" );
다른 팁
지금까지 나는 매우 만족합니다 xml :: libxml XSLT가 아닌 작업의 경우, 문서가 지적합니다 xml :: libxslt, 꽤 멋져 보이지만 지금까지 경험이 없습니다.
내가 그들 모두를 시도 할 기회가 없었기 때문에 어느 것이 가장 좋은 솔루션인지 실제로 말할 수는 없습니다.
그러나 PERL 모듈을 사용해 보는 것이 좋습니다 libxslt.
Gnome Libxslt 라이브러리의 인터페이스입니다. 나는 최근 프로젝트 중 하나에서 그것을 만족했습니다.
당신은 어떤 OS를 말하지 않고 대부분의 *닉스 플랫폼에 대해 xml :: libxml 사용하고 설치하기가 가장 쉬울 것입니다.
다음은 XSLT를 대체하기위한 몇 가지 PERL 라이브러리입니다.