Я знаю, что это легко, но я пытался, и XSLT действительно непонятен для меня... Вот почему я хотел бы иметь пример поверх моего кода, чтобы я мог изучить его на реальном примере и, вероятно, понять его.
Итак, у меня есть приложение с древовидным представлением графического интерфейса и генерирующим мне XML такого рода:
<TreeView>
<Parent text="Installation">
<child text="Startup" type="video" file="startup.wmv" icon="c://user/desktop/blahblah.jpg"/>
<child text="Getting there" type="video" file="gettingthere.wmv" icontPath="something"/>
<child text="Steps" type="document" file="steps.docx" icon="asd"/>
<child text="Pictures" type="image" file="pics.jpg" icon="dasdasdas"/>
</Parent>
<Parent text="Usage">
<child text="Tilbud pane" type="video" file="tilbud.mwv" icon="asdasd"/>
<child text="Report pane" type="document" file="report.docx" icon="gfdhd"/>
</Parent>
</TreeView>
Затем мне нужно преобразовать этот XML в HTML, чтобы я мог обновить его на своем веб-сайте.
Так что мне не нужны теги <html>
и <body>
. Мне нужно просто упорядочить этот XML в список, тогда как перед дочерними элементами должен быть пробел.
Желаемый вывод, просматриваемый пользователем в браузере, будет таким:
Installation
Startup
Getting there
Steps
Pictures
Usage
Tilbud pane
Report pane
Но поскольку у меня не будет одинаковых значений в атрибутах, я должен упорядочить элементы.
Вот что у меня есть:
<?xml version = "1.0" encoding = "utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<ul>
<xsl:for-each select="Parent">
<li>
<xsl:value-of select="@text"/>
<ul>
<xsl:for-each select="Parent/child"/>
<li>
<xsl:value-of select="@text"/>
</li>
</xsl:for-each>
</ul>
</li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
и желаемый html, который я должен получить, выглядит примерно так:
<ul>
<li>Parent
<ul>
<li>Child</li>
<li>Child</li>
.....
</ul>
</li>
<li>Parent
<ul>
<li>Child</li>
<li>Child</li>
.....
</ul>
</li>
.....
</ul>
но видимо он не хочет мне это давать... Он мне даёт просто <ul/>
после того как я запустил трансформацию...