こんにちは、私はこのようなサイトマップ xml ドキュメントを持っています
<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>
ここで、navbar=true を持つすべてのページノードを含む navbar の 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>
これに関する問題は、navbar として一致するすべての子を含むことです。
すべての子ではなく、すべての属性のみをコピーしたい
しかし、私が試してみると
<?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つの問題があります
- 各属性を個別に入力する場合があり、ページごとにかなりの数があり、最終的に変更される傾向があります
- 階層を失います。すべてが次々と平らになる
私はこの問題のすべての助けを感謝します.
ありがとう!
編集: id が見たいサンプル出力
<pagenode title="home" url="~/" fornavbar="true">
<pagenode title="events" url="~/admin/events" fornavbar="true"/>
<pagenode title="catalog" url="~/catalog" fornavbar="true"/>
</pagenode>