자바 1.7에서 작동하지 않는 속성 XSLT 2.0 XSL : 세퍼레이터 특성 내장 자바 1.7 XSLT 프로세서가 작동하지 않을 것으로 보인다 소자 가치의 .XSLT 2.0 XSL : 값-의 세퍼레이터 apache.xalan
XML 파일
<?xml version="1.0" encoding="utf-8"?>
<cars>
<manufacturer name="Chevrolet">
</manufacturer>
<manufacturer name="Ford">
</manufacturer>
<manufacturer name="Volkswagen">
</manufacturer>
</cars>
XSLT 파일
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:value-of select="cars/manufacturer/@name" separator=", "/>
</xsl:template>
</xsl:stylesheet>
자바 코드
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
public class FooMain {
public static void main(String[] args) throws IOException, URISyntaxException, TransformerException {
TransformerFactory factory = TransformerFactory.newInstance();
System.out.println("transformer factory class: "+factory.getClass()); // line-a
Source xslt = new StreamSource(new File("transform.xslt"));
Transformer transformer = factory.newTransformer(xslt);
Source text = new StreamSource(new File("input.xml"));
transformer.transform(text, new StreamResult(new File("output.html")));
}
}
코드 : 여기 (약간 크기를 줄일 수 XSLT 2nd ed.의 제 4 장에서 편집)의 예이다 실행되면 다음 출력 파일이 생성됩니다.
라인-A에Chevrolet, Ford, Volkswagen
나는 우분투 (정밀하고 인스턴스가보고 된 하는 TransformerFactory의 클래스를 자바 1.7를 사용하고을 :이 책에서 설명 무엇에 반대
Chevrolet
... 위와 같이 자바 코드)의 :
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl
UPDATE
구분 기호XSLT 파일의 이름을 구분자 BOO으로 변경했으며 코드는 불평하지 않고 계속 실행되고 똑같은 출력을 생성합니다. XSLT 2.0 구분 기호 속성이 전혀 인식되지 않는 것 같습니다.
Yeap, saxon9he.jar을 런타임 클래스 경로에 넣는 것은 트릭 –
이 xslt2 변환을 지원하는 유일한 libx 인 saxon입니까 ?? – frewper