ハイテク のない私は今、私はfornavbar =を持っているすべてのpagenodesを含んナビゲーションバー用の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文書を持っています本当。どのようにこれを行うことができますか?
私は、これまでに取得することができた最も近いが、これだった:これに伴う問題は、それは私が唯一のすべての属性をコピーするナビゲーションバー
としてマッチしたもののすべての子を含んで
<?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つの問題
- を持っている、と私はかなりのページあたりの数と、それは階層を失い、最終的
- 変更すること聞きしたい傾向があります。すべてが平らになります。
私はこの問題に関するすべての助けに感謝します。
ありがとうございました!
EDIT: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デザインパターンを完全に活用する、完全でありながら非常に短いソリューションについては、私の答えをご覧ください。 :) –