我有以下 XML 文件:
<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="cars.xsd">
<manufacture id="1">
<make>Audi</make>
<classification>
<list mid="1">
<type>Sports</type>
</list>
<list mid="2">
<type>Compact</type>
</list>
<list mid="3">
<type>Compact</type>
</list>
</classification>
</manufacture>
<manufacture id="2">
<make>bmw</make>
<classification>
<list mid="1">
<type>Sports</type>
</list>
<list mid="2">
<type>Luxury</type>
</list>
<list mid="3">
<type>Luxury</type>
</list>
</classification>
</manufacture>
</document>
这是我当前的 XSL 代码:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output doctype-public="-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
doctype-system="http://www.wapforum.org/DTD/xhtml-mobile10.dtd"
method="xml" version="1.0"
omit-xml-declaration="yes"
indent="yes" encoding="UTF-8" media-type="text/html"/>
<xsl:template match="/">
<xsl:element name="html">
<xsl:element name="head">
<xsl:element name="title">Automotives</xsl:element>
</xsl:element>
<xsl:element name="body">
<xsl:element name="ul">
<xsl:attribute name="class">pageitem</xsl:attribute>
<xsl:for-each select="document/manufacture/classification/list">
<xsl:element name="li">
<xsl:attribute name="class">menu</xsl:attribute>
<xsl:element name="p">
<xsl:attribute name="class">name</xsl:attribute>
<xsl:element name="a">
<xsl:value-of select="type"/>
<xsl:element name="br"/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
如何在不重复类型的情况下获得以下输出?
Sports
Compact
Luxury
我是 XSLT 的新手,我尝试过使用 generate-id(),如下所示:从重复的 XML 信息中选择一次,显示其余部分,并在字段上排序
但它对我不起作用,因为我无法理解 generate-id() 代码。