[英]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/DataSet1
和Node3/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.