簡體   English   中英

是否可以為兩個或多個具有不同XPATH的節點調用單個XSLT模板?

[英]Is it possible to call a single XSLT Template for two or more nodes having different XPATH?

我不太確定這是否可行,但我確實希望如此。 所以我想做的是這樣的:

我有一個XML結構,如下所示:

<RootNode>
    <Node1>
        <DataSet1> <!--Some XML Tags here not necessary--> </DataSet1>
        <DataSet2> <!--Some XML Tags here not necessary--> </DataSet2>
        <DataSet3> <!--Some XML Tags here not necessary--> </DataSet3>
    </Node1>

    <Node2>
        <DataSet1> <!--Some XML Tags here not necessary--> </DataSet1>
        <DataSet2> <!--Some XML Tags here not necessary--> </DataSet2>
        <DataSet3> <!--Some XML Tags here not necessary--> </DataSet3>
    </Node2>

    <Node3>
        <DataSet1> <!--Some XML Tags here not necessary--> </DataSet1>
        <DataSet2> <!--Some XML Tags here not necessary--> </DataSet2>
        <DataSet3> <!--Some XML Tags here not necessary--> </DataSet3>
    </Node3>        
</RootNode>

我正在嘗試使用XSLT在HTML表中顯示數據集...我想知道是否有可能為類似的數據集元素實現單個模板。 Node1/DataSet1一樣, Node2/DataSet1Node3/DataSet1將通過單個模板實現,而不是為每個可能的XPATH重復代碼。

請注意,這是一個示例XML,父節點的名稱(即Node1,Node2,Node3等)是唯一的,不能進行修改以使其相同。

如果事先知道所有元素名稱,則可以在匹配模式中列出它們,例如:

<xsl:template match="DataSet1 | DataSet2 | DataSet3"> 

如果元素名稱的編號如示例所示,則可以使用:

<xsl:template match="*[starts-with(name(), 'DataSet')]">

如果元素名稱完全未知,則可以使用通配符,例如:

<xsl:template match="*">

要限制此類模板的范圍,還可以指定級別,例如:

<xsl:template match="/RootNode/*/*">

或使用模式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM