의 Xalan은 EXSL의 DYN 있습니다 기능을 내장, 당신이 그것을 사용하기 위해 아무것도 가져올 필요가 없습니다 평가합니다. 네임 스페이스를 선언하면됩니다.
xalan.exe -p path '/root/foo' input.xml dyn_evaluate.xsl
이
을 제공
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dyn="http://exslt.org/dynamic"
extension-element-prefixes="dyn">
<xsl:param name="path"/>
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:value-of select="dyn:evaluate($path)"/>
</xsl:template>
</xsl:stylesheet>
실행 :
input.xml :
<root>
<foo>I am foo</foo>
<bar>I am bar</bar>
</root>
dyn_evaluate.xsl 나는 작은 예를주지
I am foo
는 실행
xalan.exe -p 경로 dyn_evaluate.xsl
input.xml '/ 루트/바'이 도움이
I am bar
희망을 제공합니다.
나는 이것이 고대의 스레드라는 것을 알고 있지만'javax.xml.transform.TransformerFactory'를 사용하여 XSLT 프로세서를 추상화하면'dyn : evaluate'은 기본'TransformerFactory' 구현으로 실패합니다 JDK와 함께 제공됩니다. 이것은 JDK 구현이 인터프리터가 아니라 Xalan XSLTC 컴파일러이기 때문에 'dyn : evaluate'이 인식 되더라도 처리 할 수 없기 때문입니다. –