1
我有一個管道在輸入上運行XSLT,然後通過<p:http-request>
步驟將該結果PUT輸入到數據庫中。Xproc:將一個動態href傳遞給<p:http-request>
這裏棘手的一點是,我需要使用來自<p:xslt>
XML輸出的元數據來構建動態href。
<p:xslt name="XSLT1">
<p:input port="stylesheet">
<p:document href="XSLT-1.xslt" />
</p:input>
</p:xslt>
<p:variable name="href" select="concat('http://localhost:8000/myRESTendpoint?uri=/mydb/', /*/@name, /*/@number,'.xml')"/>
<p:sink />
<p:insert position="first-child" match="c:body">
<p:input port="source">
<p:inline>
<c:request
href="{$href}"
auth-method="basic"
username="user"
password="pw"
method="put">
<c:body content-type="text/xml" >
</c:body>
</c:request>
</p:inline>
</p:input>
<p:input port="insertion">
<p:pipe step="XSLT1" port="result" />
</p:input>
</p:insert>
<p:http-request omit-xml-declaration="false" encoding="UTF-8">
<p:input port="source"/>
</p:http-request>
正如你可以在<p:variable>
一步看,我試圖建立一個字符串,並從輸出XML與屬性值構造它:
僞這裏我想要實現代碼的<p:xslt>
步驟,並將其填充到我的<c:request>
步驟的href選項中。
我試着加入<p:attribute match>
一步改變<p:http-request>
之前href屬性,但它不搶/*/@name
和/*/@number
值我需要:
<p:add-attribute match="/c:request" attribute-name="href">
<p:with-option name="attribute-value" select="concat('http://localhost:8000/myRESTendpoint?uri=/mydb/', /*/@name, /*/@number,'.xml')"/>
</p:add-attribute>