2005年8月3日

擷取 XML 中不重覆的某元素值

踹了很久,不幸在 Google 中找到了超級簡單的解決方案:selecting unique entries from a list

所以擷取 Extensions.xml (參照:開始提供 『Mozilla Firefox 擴充套件網頁安裝服務』 ) 中不重覆的 category 元素值的作法如下:

category.xsl
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="UTF-8"/>
<xsl:template match="/">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5" />
<link rel="stylesheet" type="text/css" media="all" href="extensions.css" />
<title>Firefox 套件自動安裝服務</title>
</head>
<body>
<xsl:apply-templates select="/extensions"/>
</body>
</html>
</xsl:template>

<xsl:template match="/extensions" > <!-- 請把 select 內的前後空白去掉 --> <xsl:for-each select=" extension/category[not (. = preceding::category)] "> <xsl:sort select="." /> <xsl:value-of select="." /><br /> </xsl:for-each> </xsl:template> </xsl:stylesheet>

呵呵,看來還有的玩囉!