Mozilla® 一直在改進其旗艦浏覽器
對於目前存在的成百上千個 XML 處理工具
XML 領域包含大量技術
在 Firefox
我曾經希望 Firefox
getElementById 而提供的惟一方法是內部 DTD 子集(無外部子集
未能實現的另一個期望的核心改進是允許用戶請求浏覽器裝入外部 DTD 子集
XML 領域包含大量技術
在 Firefox
我曾經希望 Firefox
XSLT 的重大改進
希望在 Firefox 中使用 XSLT 的人們獲得的最大勝利是支持 EXSLT
Common
exsl:node
exsl:object
Sets
set:difference 將計算兩個集合之間的差異
set:distinct 將檢驗節點集以查找擁有相同字符串值的節點
如果返回的節點集中的節點在兩個集合中都有
set:has
set:leading 將返回一個節點集
set:trailing 將返回一個節點集
Strings
str:concat 將返回一個字符串
str:split 將使用一種模式把一個字符串分隔為一連串子字符串(使用在運行時構造的節點集表示)
str:tokenize 將使用一組單字符標記把一個字符串分隔為一連串子字符串(使用在運行時構造的節點集表示)
Math
math:max 將返回給定節點集中的內容的最高數值
math:min 將返回給定節點集中的內容的最低數值
math:highest 將返回內容中擁有最高數值的節點集
math:lowest 將返回內容中擁有最低數值的節點集
正則表達式
regexp:match 將在運行時構造節點集時
regexp:test 將檢查字符串是否與正則表達式模式完全匹配
regexp:replace 將替代匹配正則表達式模式的子字符串
通過示例了解 EXSLT
為了幫助您開始在轉換過程中使用 EXSLT
清單
<?xml version=
<?xml
<employees>
<department id=
<title>Research</title>
<info>
<employee id=
<title>Coordinator</title>
<name>
<given>Rene</given>
<family>Descartes</family>
</name>
<location building=
</employee>
<employee id=
<title>Project Manager</title>
<name>
<given>Abu Ja
<family>Al Kwarizmi</family>
</name>
<location building=
</employee>
</department>
<department id=
<title>Executive</title>
<info>Home of the head honchos</info>
<employee id=
<title>Chief Executive Officer</title>
<name>
<given>Genghis</given>
<family>Khan</family>
<honorific>The Great</honorific>
</name>
<location building=
</employee>
</department>
<department id=
<title>Human Resources</title>
<info>We
<employee id=
<title>Manager of Wellness</title>
<name>
<given>Ching
<family>Li</family>
</name>
<location building=
</employee>
</department>
</employees>
注意
清單
<?xml version=
<!
<xsl:transform version=
xmlns:xsl=
xmlns:math=
xmlns:regex=
xmlns:set=
xmlns:str=
xmlns=
exclude
<!
Notice also exclude
namespace declarations in the result XHTML
<!
(notice the doc type declaration info)
<xsl:output method=
doctype
doctype
<xsl:template match=
<!
specified using a processing instruction in the output
<xsl:processing
<xsl:text>type=
</xsl:processing
<html xml:lang=
<head>
<title>Employee report</title>
</head>
<body>
<h
<table>
<xsl:apply
</table>
<hr/>
<xsl:call
</body>
</html>
</xsl:template>
<xsl:template name=
<xsl:variable name=
select=
<xsl:variable name=
select=
<!
XPath queries have any node sets in common
<xsl:if test=
<p>Note: At least one executive presently works in China</p>
</xsl:if>
<dl>
<dt>Countries where employees presently work</dt>
<dd>
<!
from the query result
<xsl:for
<xsl:value
<xsl:if test=
<xsl:text>
</xsl:if>
</xsl:for
</dd>
<dt>Newest employee</dt>
<!
<dd><xsl:value
</dl>
</xsl:template>
<xsl:template match=
<tr>
<td colspan=
<!
<!
<a {regex:match(info
<xsl:value
</a>
</td>
</tr>
<xsl:apply
</xsl:template>
<xsl:template match=
<tr>
<td>
<xsl:value
<xsl:text> </xsl:text>
<xsl:value
</td>
<td>
<!
<!
the value would be appended for each employee
<xsl:value
</td>
<td>
<xsl:value
</td>
<td>
<!
<xsl:value
</td>
</tr>
</xsl:template>
</xsl:transform>
我在代碼中加了很多注釋
清單
body { background
td { padding
將 清單
圖
結束語
除了主要的解析改進以及 EXSLT 之外
有許多 CSS 和 JavaScript 補丁
可伸縮向量圖形(Scalable Vector Graphics
有些人會說
From:http://tw.wingwit.com/Article/program/ASP/201311/21876.html