我有一段XML
数据需要转换为WML
.
是这样的:
<root>
<category name="music"/>
<subcategory name="classic"/>
<subcategory name="rock"/>
<subcategory name="Techno"/>
<node type="music" subtype="classic" name="beethoven"/>
<node type="music" subtype="classic" name="chopin"/>
<record author="beethoven" name="moonlight sonata"/>
…
</root>
我无法更改文件结构。
一些Nokia
移动浏览器无法将大量<card>
' 加载到内存中。
因此,根据移动浏览器,WML
页面应该是一整套<card>
',或者是<card>
' 的某个子集。
例如,如果我用普通浏览器下载一个页面,它应该是这样的:
<wml>
<card id="TOC">
<p><a href="#contents">Contents</a></p>
<p><a href="#az">A-Z</a></p>
</card>
<card id="contents">
<p><a href="#music">music</a></p>
<p><a href="#video">video</a></p>
<p><a href="#java">java</a></p>
</card>
<card id="az">
<p><a href="#beethoven">beethoven</a></p>
<p><a href="#chopin">chopin</a></p>
</card>
<card id="music">
<p><a href="#classic">classic</a></p>
<p><a href="#rock">rock</a></p>
<p><a href="#Techno">Techno</a></p>
</card>
<card id="classic">
<p><a href="#beethoven">beethoven</a></p>
<p><a href="#chopin">chopin</a></p>
</card>
…
</wml>
,以便用户无需额外往返服务器即可浏览。
但是,当我使用Nokia
并访问起始页时,页面应如下所示:
http://example.com/
<wml>
<card id="TOC">
<p><a href="#contents">Contents</a></p>
<p><a href="#az">A-Z</a></p>
</card>
<card id="contents">
<p><a href="#music">music</a></p>
<p><a href="#video">video</a></p>
<p><a href="#java">java</a></p>
</card>
<card id="az">
<p><a href="/beethoven">beethoven</a></p>
<p><a href="/chopin">chopin</a></p>
</card>
<card id="music">
<p><a href="/classic">classic</a></p>
<p><a href="/rock">rock</a></p>
<p><a href="/Techno">Techno</a></p>
</card>
<card id="video">
<p><a href="/movies">Movies</a></p>
</card>
<card id="java">
<p><a href="/games">Games</a></p>
</card>
</wml>
,当我访问 时href
,它应该显示内部内容:
http://example.com/classic
<wml>
<card id="TOC">
<p><a href="#contents">Contents</a></p>
<p><a href="#az">A-Z</a></p>
</card>
<card id="contents">
<p><a href="/music">music</a></p>
<p><a href="/video">video</a></p>
<p><a href="/java">java</a></p>
</card>
<card id="az">
<p><a href="#beethoven">beethoven</a></p>
<p><a href="#chopin">chopin</a></p>
</card>
<card id="classic">
<p><a href="#beethoven">beethoven</a></p>
<p><a href="#chopin">chopin</a></p>
</card>
…
</wml>
基本上,XSLT
应该做以下事情:
接受某种要显示的参数:类别、子类别等。
计算
<card>
将显示的 '。- 如果我们只加载类型和目录,我们会得到
2
卡片(我们总是显示它们)- 如果我们只加载类型和子类型,我们会得到
10
卡片。 - 如果我们加载类型、子类型和标题,我们会显示
100
卡片。 - 如果我们加载所有内容,我们会显示
300
卡片。
- 如果我们只加载类型和子类型,我们会得到
Nokia
只能处理120
卡片,所以我们就停在 level 上3
。如果
XML
更改和级别3
需要130
卡,我们应该停止在级别2
。- 如果我们只加载类型和目录,我们会得到
<card>
如果低于特定水平,则不显示如果不显示卡片,将
#
(inner links)替换为(outer links)。/
是否可以在单个XSL
文件中执行?