我有一個XSLT樣式表,它以XML形式生成一些輸出。我想用另一個樣式表處理輸出。有沒有辦法告訴後者的樣式表「運行並使用」前者的結果?處理另一個XSLT樣式表的輸出
2
A
回答
2
沒有,據我所知,告訴XSLT處理器的標準方式來運行給另一個樣式表輸入並做輸出。在某些情況下,你可以處理針對一組模板的輸入,並將結果保存在變量中,然後應用一組不同的模板變量的值,這樣的事情:
<xsl:template match="/">
<xsl:variable name="temp">
<xsl:apply-templates mode="first-pass"/>
</xsl:variable>
<xsl:apply-templates select="$temp" mode="second-pass"/>
</xsl:template>
這是假設你」重新運行XSLT 2.0。在XSLT 1.0中,你將需要一個支持節點集擴展的處理器(很多),你需要將引用改爲$ temp,像exslt:nodeset($ temp)。
正如您會意識到的那樣,如果您的兩個樣式表都使用默認模式並且對重疊的元素類型進行操作,那麼這將不會很好地工作。因此,一些XSLT處理器添加了擴展以提供您描述的功能類型(例如,請參閱討論Xalan管道:pipeDocument擴展元素)。
當然,您也可以在XSLT之外處理管道。最簡單的方法取決於您正在運行的環境。
如果您從操作系統shell運行XSLT,並且您的XSLT處理器接受stdin上的輸入,則可以將輸出從一個樣式表導入另一個樣式表:
xsltproc a.xsl in.xml | xsltproc b.xsl - > out.xml
隨着穆罕默德衛生部已經指出的那樣,許多腳本環境使人們有可能做類似的事情:他提到PHP,當然還有XPROC。
0
是的你可以。您必須將源節點轉換爲DOMDocument我不知道什麼是您的編程語言。在PHP實例是transformToDoc()變換後,您可以運行一個新的XSLT樣式表在DOM文檔輸出
相關問題
- 1. 從一個XSLT樣式表處理多個XML文檔
- 2. 從一個樣式表到另一個樣式表淡出
- 3. XSLT 2.0 |一個輸入 - >多個樣式表 - >多個輸出
- 4. 使用Internet Explorer處理XSLT樣式表時出錯
- 5. 處理樣式表
- 6. XSLT樣式表
- 7. XSLT文本輸出處理器差異
- 8. 創建一個XSL樣式表來管理FileMaker Pro XML輸出
- 9. 最簡單的XSLT樣式表,其輸出是XSLT樣式表...用於學習目的
- 10. 輸入一個批處理文件並將該輸入輸出到另一個批處理文件
- 11. 在C++中處理輸出表達式
- 12. 加載樣式表時出錯:解析XSLT樣式表失敗。
- 13. 如何在一個XSLT文件中包含另一個輸出?
- 14. wxPython - 從一個TextCtrl處理輸入並將輸出發送到另一個TextCtrl?
- 15. XSLT 1.0樣式表在輸出中複製數據
- 16. XSLT 1.0輸出逗號分隔列表時處理空元素
- 17. XSLT樣式表複式
- 18. 批調用另一個批處理,並使用輸出變量
- 19. HTML表單輸出樣式
- 20. XSLT輸出XSLT
- 21. 從另一個表格處理QTextEdit
- 22. xslt xpath +多個樣式表問題
- 23. 遞歸合併多個XSLT樣式表
- 24. 合併多個xslt樣式表
- 25. XML與多個XSLT樣式表
- 26. 秩序XSLT樣式表
- 27. xslt列表標記樣式
- 28. xslt樣式表確認
- 29. XSLT:合併樣式表
- 30. XSLT樣式表切換器