2013-03-08 79 views
1

我完全是XSLT的新手,我需要將它用於一些轉換。我想了解的是如何複製aross xml文檔上特定元素的子元素。XSLT:根據名稱空間複製節點上的所有子節點uri

這個元素是動態的,但我知道它的命名空間的URI。有沒有一種方法可以根據我所擁有的uri來匹配這個元素,然後將所有的子元素都複製過來?

由於

回答

1

xsl:copy-of該元件可用於複製一個節點集合到結果樹。

例如,在foo命名空間的子節點複製到結果,你可以使用這樣的事情:

<xsl:copy-of xmlns:ns="foo" select="ns:*"/> 

又見xsl:copy元素複製當前節點。


編輯補充:如果你只知道在運行時的命名空間,看到namespace-uri XPath函數。

例如,如果你有可變$uri含有命名空間URI,的等效以上將是:

<xsl:copy-of select="*[namespace-uri() = $uri]"/> 
+0

您好的Jukka,謝謝。這是如何工作的?就我而言,foo將是一個變量;所以像xmlns:ns = $ uri。也許有一個更好的解決方案。 – isaiah 2013-03-08 23:57:56

+0

@isaiah,有'namespace-uri()'函數提取節點的名稱空間URI。我編輯了答案來添加一個例子。 – 2013-03-09 05:33:28

+0

謝謝,這似乎工作。我想知道,從你的角度來看,我如何學習xslt?我可以看到它非常強大。 – isaiah 2013-03-09 15:20:01

相關問題