Tôi đang thực hiện một XSLT chuyển đổi từ bên trong ứng dụng web java của tôi không có vấn đề như sau:Execute XSLT Chuyển đổi từ Java với tham số
Transformer transformer = TransformerFactory.newInstance().newTransformer(xslSource);
transformer.transform(xmlInput, xmlOutput);
Trong XSLT tôi transform Tôi bây giờ thêm một cuộc gọi đến document()
chức năng để tải phản hồi từ một dịch vụ web RESTful:
<!-- do stuff -->
<xsl:variable name="url">
http://server/service?id=<xsl:value-of select="@id"/>
</xsl:variable>
<xsl:call-template name="doMoreStuff">
<xsl:with-param name="param1" select="document($url)/foo"/>
</xsl:call-template>
Ok, không sao cả. Nhưng bây giờ, tôi muốn đọc URL cơ sở từ một lớp utils trong java và chuyển nó vào biểu định kiểu.
//java
String baseUrl = myUtils.getBaseUrl();
<!-- xslt -->
<xsl:variable name="url">
<xsl:value-of select="$baseUrl"/>
<xsl:text>/service?id=</xsl:text>
<xsl:value-of select="@id"/>
</xsl:variable>
Bất kỳ đề xuất nào về cách thực hiện việc này? Lớp utils Java của tôi tải giá trị từ tệp myApp.properties trên đường dẫn lớp, nhưng tôi không chắc mình có thể sử dụng nó từ XSLT ...
Quan trọng cần lưu ý rằng '' phải được khai báo ở cấp cao nhất của biểu định kiểu. Nếu bạn khai báo nó trong một khuôn mẫu, nó sẽ được coi là tham số cho khuôn mẫu chứ không phải toàn bộ biểu định kiểu. –
karl