我在Apache FOP xsl文档中使用Barcode4J ean-13生成动态消息时遇到问题。我确实使用硬编码消息生成条形码。但是,我想将条形码编号作为参数传递给xsl文档。我该怎么做呢?
另外,我已经提到了barcode4J site的帮助页面而没有运气。我尝试过使用here描述的技术,但没有运气。
这就是我的xsl文档的样子
<fo:block-container left="1000" top="1000"
z-index="1" position="relative">
<fo:block>
<fo:instream-foreign-object>
<bc:barcode xmlns:bc="http://barcode4j.krysalis.org/ns"
message="123456789789">
<bc:ean-13 />
</bc:barcode>
</fo:instream-foreign-object>
</fo:block>
</fo:block-container>
答案 0 :(得分:1)
您不会说出您正在使用的XSLT版本。
如果要将参数传递给XSLT,则需要将参数声明为xsl:stylesheet
的子元素,例如:
<xsl:param name="barcode" />
对于XSLT 1.0,请参阅http://www.w3.org/TR/xslt#top-level-variables。如果您使用的是XSLT 2.0,则可以声明更多信息。
如何传递参数值取决于您使用的是哪个XSLT处理器,但您可以期望在XSLT处理器的文档中介绍它。
然后,您可以在&#39;属性值模板中使用$barcode
参数&#39;在你的文字标记中:
<fo:block-container left="1000" top="1000"
z-index="1" position="relative">
<fo:block>
<fo:instream-foreign-object>
<bc:barcode xmlns:bc="http://barcode4j.krysalis.org/ns"
message="{$barcode}">
<bc:ean-13 />
</bc:barcode>
</fo:instream-foreign-object>
</fo:block>
</fo:block-container>
对于XSLT 1.0中的属性值模板,请参阅http://www.w3.org/TR/xslt#dt-attribute-value-template