2
XSLT를 처음 사용합니다. 이전에는 명령 줄을 사용하여 XSLT를 수행하는 데 익숙했습니다. 그냥 같이 :Java를 사용하여 Java 함수를 호출하는 XSLT 수행
@echo off
set XALAN_JAR=%OPENCCG_HOME%\lib\xalan.jar
java -classpath .;%XALAN_JAR% org.apache.xalan.xslt.Process -IN recommend_person.xml -XSL planner.xsl -OUT people_graph.xml
이 잘 근무하고 나는 planner.xsl
파일 내부에 자바 함수를 호출 할 수 있었다. 하지만 지금은 자바 프로그램 내에서 같은 일을하고 싶은이 같은 프로그램 작성 :
file:///C:/xslt/planner.xsl; Line #16; Column #60; javax.xml.transform.TransformerException: java.lang.ClassNotFoundException: NodeIdGen
file:///C:/xslt/planner.xsl; Line #20; Column #55; Unknown error in XPath.
file:///C:/xslt/planner.xsl; Line #23; Column #65; Variable idgen is directly or indirectly referencing itself!
Transform from C:/xslt/recommend_person.xml to C:/xslt/output.xml using C:/xslt/planner.xsl performed
file:///C:/xslt/planner.xsl; Line #16; Column #60; javax.xml.transform.TransformerException: java.lang.ClassNotFoundException: NodeIdGen
file:///C:/xslt/planner.xsl; Line #23; Column #65; Unknown error in XPath.
file:///C:/xslt/planner.xsl; Line #26; Column #82; Variable idgen is directly or indirectly referencing itself!
file:///C:/xslt/planner.xsl; Line #16; Column #60; javax.xml.transform.TransformerException: java.lang.ClassNotFoundException: NodeIdGen
file:///C:/xslt/planner.xsl; Line #26; Column #82; Unknown error in XPath.
file:///C:/xslt/planner.xsl; Line #29; Column #129; Variable idgen is directly or indirectly referencing itself!
file:///C:/xslt/planner.xsl; Line #16; Column #60; javax.xml.transform.TransformerException: java.lang.ClassNotFoundException: NodeIdGen
file:///C:/xslt/planner.xsl; Line #29; Column #129; Unknown error in XPath.
file:///C:/xslt/planner.xsl; Line #33; Column #68; Variable idgen is directly or indirectly referencing itself!
file:///C:/xslt/planner.xsl; Line #16; Column #60; javax.xml.transform.TransformerException: java.lang.ClassNotFoundException: NodeIdGen
file:///C:/xslt/planner.xsl; Line #33; Column #68; Unknown error in XPath.
file:///C:/xslt/planner.xsl; Line #36; Column #72; Variable idgen is directly or indirectly referencing itself!
file:///C:/xslt/planner.xsl; Line #16; Column #60; javax.xml.transform.TransformerException: java.lang.ClassNotFoundException: NodeIdGen
file:///C:/xslt/planner.xsl; Line #36; Column #72; Unknown error in XPath.
file:///C:/xslt/planner.xsl; Line #39; Column #71; Variable idgen is directly or indirectly referencing itself!
file:///C:/xslt/planner.xsl; Line #16; Column #60; javax.xml.transform.TransformerException: java.lang.ClassNotFoundException: NodeIdGen
file:///C:/xslt/planner.xsl; Line #39; Column #71; Unknown error in XPath.
file:///C:/xslt/planner.xsl; Line #51; Column #67; Variable idgen is directly or indirectly referencing itself!
file:///C:/xslt/planner.xsl; Line #16; Column #60; javax.xml.transform.TransformerException: java.lang.ClassNotFoundException: NodeIdGen
file:///C:/xslt/planner.xsl; Line #51; Column #67; Unknown error in XPath.
file:///C:/xslt/planner.xsl; Line #57; Column #60; Variable idgen is directly or indirectly referencing itself!
file:///C:/xslt/planner.xsl; Line #16; Column #60; javax.xml.transform.TransformerException: java.lang.ClassNotFoundException: NodeIdGen
file:///C:/xslt/planner.xsl; Line #57; Column #60; Unknown error in XPath.
file:///C:/xslt/planner.xsl; Line #60; Column #72; Variable idgen is directly or indirectly referencing itself!
file:///C:/xslt/planner.xsl; Line #16; Column #60; javax.xml.transform.TransformerException: java.lang.ClassNotFoundException: NodeIdGen
file:///C:/xslt/planner.xsl; Line #60; Column #72; Unknown error in XPath.
file:///C:/xslt/planner.xsl; Line #65; Column #48; Variable idgen is directly or indirectly referencing itself!
file:///C:/xslt/planner.xsl; Line #16; Column #60; javax.xml.transform.TransformerException: java.lang.ClassNotFoundException: NodeIdGen
file:///C:/xslt/planner.xsl; Line #65; Column #48; Unknown error in XPath.
NodeIdGen
자바 클래스 I입니다 :
/**
* Created by Zhao on 2016/8/19.
*/
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.*;
import java.io.FileOutputStream;
public class xslTest {
// 1. Instantiate a TransformerFactory.
private TransformerFactory tFactory;
// 2. Use the TransformerFactory to process the stylesheet Source and
// generate a Transformer.
private Transformer transformer;
private FileOutputStream outStream;
// setup the input, output and xsl
private StreamSource xsl;
private StreamSource input;
private StreamResult output;
public void xslTest(String inputFile, String outputFile, String XSLFile) {
try {
tFactory = TransformerFactory.newInstance();
xsl = new StreamSource(XSLFile);
input = new StreamSource(inputFile);
outStream = new FileOutputStream(outputFile);
output = new StreamResult(outStream);
transformer = tFactory.newTransformer(xsl);
transformer.transform(input, output);
}catch (Exception e) {
e.printStackTrace();
}
System.out.printf(
"Transform from %s to %s using %s performed",
inputFile, outputFile, XSLFile
);
}
public static void main (String[] args) {
xslTest test = new xslTest();
String inputFile = "C:/xslt/recommend_person.xml";
String outputFile = "C:/xslt/output.xml";
String XSLFile = "C:/xslt/planner.xsl";
test.xslTest(inputFile, outputFile, XSLFile);
}
}
내 IDE가 같은 많은 오류가 나에게 이야기를 XSL 파일에서 사용됩니다. 변환을 수행 할 때 명령 행을 사용하면 잘 작동합니다.
ClassNotFoundException은 아마도 클래스 경로에없는 것을 의미합니다. IDE 구성을 확인하십시오. 누락 된 클래스에 대한 참조를 메인 애플리케이션에서 추가하여 해당 애플리케이션이 선택되었는지 확인하십시오. –
@MichaelKay 감사합니다! 그것은 작동합니다. – Zhao