喜 我有一個網站地圖的XML文檔看起來像這樣XSLT複製的無子女
<pagenode title="home" url="~/" fornavbar="true">
<pagenode title="admin" url="~/admin" fornavbar="false">
<pagenode title="users" url="~/admin/users" fornavbar="false"/>
<pagenode title="events" url="~/admin/events" fornavbar="true"/>
</pagenode>
<pagenode title="catalog" url="~/catalog" fornavbar="true"/>
<pagenode title="contact us" url="~/contactus" fornavbar="false"/>
</pagenode>
現在我想檢索導航欄的XML文檔,其中包括所有的pagenodes有fornavbar =真正。如何才能做到這一點?
我是能夠得到到目前爲止最接近的是這樣的:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="pagenode[@fornavbar='true']">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
這個問題,包括匹配的導航欄的任何事情所有的孩子
我只希望所有的屬性複製並不是所有的孩子
但如果我嘗試
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="pagenode[@fornavbar='true']">
<pagenode title="{@title}" url="{@url}"/>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
然後,我有2個問題
- 我可能分別鍵入出每個屬性,和我有相當每頁數和theyre容易最終
- 改變它失去層次。一切都變得平坦
我會感謝所有和任何幫助。
謝謝!
編輯:樣本輸出ID喜歡看
<pagenode title="home" url="~/" fornavbar="true">
<pagenode title="events" url="~/admin/events" fornavbar="true"/>
<pagenode title="catalog" url="~/catalog" fornavbar="true"/>
</pagenode>
好問題,+1。請參閱我的答案,以獲取完整而非常短的解決方案,充分利用最基本的XSLT設計模式。 :) – 2011-01-25 14:32:42