我有兩個輸出XML數據的函數。理想情況下,我想將每個函數的輸出合併爲一個變量來解析數據。XSLT - 用於組合兩個函數的內部連接類型命令
在SQL術語中,每個函數都可以通過內部連接通過屬性PageId連接在一起...但在XSLT中不允許連接(或者至少據我所知)。
關於組合這些功能的最簡單/最簡單方法的任何建議?我正在調用的函數內置於cms中,無法編輯。
一些詳細信息:
第一個功能是地圖。它列出了網站的網頁ID及其級別。
第二個函數將我需要的網頁ID及其元數據標籤與網站地圖結合在一起。
我想過爲第二個函數Page Ids創建變量,但包含元數據標籤的頁面數量發生了變化,我不認爲這些變量支持動態名稱。
我很抱歉,如果我不夠清楚,因爲xslt對我來說是新的。請讓我知道是否需要更多信息。
編輯:添加代碼示例
<in:inputs xmlns:in="http://www.composite.net/ns/transformation/input/1.0">
<in:result name="SitemapXml">
<Page Id="a0a47ce1-6eba-4d29-a7a3-3749c768c7e7" isopen="true" xmlns="">
<Page Id="a3055286-0e90-4b04-99dd-fb1a61dde0bf" isopen='true' xmlns="">
<Page Id="da675b13-d4d3-42ab-acc1-82e2a5408100" isopen='true' iscurrent='true' Depth="2"/>
</Page>
</Page>
</in:result>
<in:result name="GetisrootXml">
<isroot PageId="a0a47ce1-6eba-4d29-a7a3-3749c768c7e7" Id="f8d4eea4-7070-4bc3-a804-e106697ffaa9" isroot="true" xmlns=""/>
<isroot PageId="f8e4adbc-2758-42d6-bc40-0192ba0107a6" Id="db62e132-3f3b-493f-917a-9e090f887f13" isroot="false" xmlns=""/>
</in:result>
</in:inputs>
我想返回:
<in:inputs xmlns:in="http://www.composite.net/ns/transformation/input/1.0">
<in:result name="SitemapXml">
<Page Id="a0a47ce1-6eba-4d29-a7a3-3749c768c7e7" isopen="true" xmlns="" isroot='true'>
</Page>
<Page Id="a3055286-0e90-4b04-99dd-fb1a61dde0bf" isopen='true' xmlns="">
<Page Id="da675b13-d4d3-42ab-acc1-82e2a5408100" isopen='true' iscurrent='true' Depth="2"/>
</in:result>
</in:inputs>
由此,我想進一步改變輸出適合我的需要(添加標籤用於顯示目的) 。爲了達到這一點,isroot屬性需要附加到站點地圖。
您可以使用XSLT 2.0,還是僅限於1.0? 2.0中有一些功能可以使任務更輕鬆。 – 2012-07-09 06:32:34
這兩個in:result'元素是否真的嵌套,或者這是您的代碼示例中的拼寫錯誤?第二個「Page」元素在哪裏關閉? – hielsnoppe 2012-07-09 12:18:41