Привет, у меня есть XML-документ Sitemap, который выглядит примерно так
<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 = true.как это можно сделать?
самое близкое, что я смог получить до сих пор, было это:
<?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 проблемы
- я мог бы напечатать каждый атрибут отдельно, и у меня есть довольно много на страницу, и они в конечном счете изменятся
- , это теряет иерархию.все становится ровным один за другим
Я был бы признателен всем и за любую помощь в этом вопросе.
спасибо!
РЕДАКТИРОВАТЬ: пример выходных данных, который нравитсясм
<pagenode title="home" url="~/" fornavbar="true">
<pagenode title="events" url="~/admin/events" fornavbar="true"/>
<pagenode title="catalog" url="~/catalog" fornavbar="true"/>
</pagenode>