跳轉到內容

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>
華夏公益教科書