跳转到内容

XProc/多重 XSLT 管道

来自维基教科书,开放的书籍,用于开放的世界

包含多个 XSLT 变换的管道

[编辑 | 编辑源代码]

以下管道使用一系列三个不同的变换,每个后续的 XSLT 变换使用前一个变换的结果。每个样式表都在一个 pipeline/xslt 元素中指定,该元素至少包含一个 stylesheet 输入,其中 stylesheet 在 input/document/@href 中指定。

<?xml version="1.0"?>
<p:pipeline version="1.0" xmlns:p="http://www.w3.org/ns/xproc">
	<p:xslt>
		<p:input port="stylesheet">
			<p:document href="first.xsl"/>
		</p:input>
	</p:xslt>
	<p:xslt>
		<p:input port="stylesheet">
			<p:document href="second.xsl"/>
		</p:input>
	</p:xslt>
	<p:xslt>
		<p:input port="stylesheet">
			<p:document href="third.xsl"/>
		</p:input>
	</p:xslt>
</p:pipeline>

多个 XSL 变换的参数

[编辑 | 编辑源代码]

要将参数从 XProc 脚本传递到样式表中,请使用 with-param 元素。在以下示例中,第一个和第三个样式表都有一个名为“foo”的参数。在第一个样式表中,希望“foo”参数的值为“one”。在第三个样式表中,希望将“foo”参数设置为“three”。

<?xml version="1.0"?>
<p:pipeline version="1.0" xmlns:p="http://www.w3.org/ns/xproc">
	<p:xslt>
		<p:input port="stylesheet">
			<p:document href="first.xsl"/>
		</p:input>
                <p:with-param name="foo" select="'one'"/>
	</p:xslt>
	<p:xslt>
		<p:input port="stylesheet">
			<p:document href="second.xsl"/>
		</p:input>
	</p:xslt>
	<p:xslt>
		<p:input port="stylesheet">
			<p:document href="third.xsl"/>
		</p:input>
                <p:with-param name="foo" select="'three'"/>
	</p:xslt>
</p:pipeline>
华夏公益教科书