Archive for the ‘xml’ Category.
Friday, July 29, 2005, 10:30 pm
XSLT 的作用大家應該知道了,便是把 XML 的格式從一種轉成另一種。比如說,把 RSS 或 ATOM 轉為可在瀏覽器上直接觀看的 XHTML (Feedburner 的功能之一),又或者把 XML 格式簡化,程式更容易套取資料。但是,你可有想過以 XSLT 把格式原封不動的弄出來?
或許你會問,這樣是多此一舉,既然一樣啦,為甚麼還要 Transform?
除錯。可能大家沒有這樣的經驗:看不到源 XML。源 XML 是從呼叫 SAX 各個 handler 的函數虛擬出來,根本便沒有 XML 產生過,除錯的時候很來找到問題的所在。用 Identity Transform 就好了,甚麼 XML 經 Transformer 一過便列了出來。
有些時候想把特定的元件改變,但其他則維持原狀,也可以透過從 Identity Transformation 樣版匯入其他樣版達到目的。此外,就是弄出不同排位次序但資料不變的 XML 檔案。
把 identity transformation template 貼出來看看:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
延伸閱讀:XML.com: Using XSLT to Assist Regression Testing
Sunday, July 24, 2005, 1:45 pm
因為工作需要,硬著頭皮「速成」了 XSL (XML Stylesheet Language Family)。XSL 是一套將 XML 資料變成另一種 XML 資料,及顯示 XML 資料的工具(本身也是 XML),有三名成員:
- XSLT(XSL Transformations,XSL 轉換)
XSLT 給我的感覺很像 Regular Expression + Template,簡單的流程是在源 XML 找出要用的資料,再放到新 template 裏的變數裏去。例如 XML 格式裏有某個節點的資料要找出來,放進 HTML table 顯示給用家 (用家看不慣密麻麻的 XML 嘛)。XSLT 有點 programming 的意味 (有 foreach,也有 if else),但是本身也是一套格式表達的語言呢。
- XPath (XML Path Language,XML 路徑語言)
這套不是 XML,卻是一套存取 XML 文件裏各元件資料 (包括元件值及屬性) 的語言。把 XPath 當成是在 XML 上使用的 SQL 較容易掌握。
- XSL – FO (XSL Formatting Object,XSL 格式化物件
一套專門描述格式試定的 XML… 說穿了其實那是 XHTML 跟 CSS 合在一起,再刪減某些和格式無關的部份。
Saturday, July 2, 2005, 6:07 pm
終於踏出了利用 Google Maps + Blogcasting 的第一部!本想在之前的文章更新再寫,不過有很多要說,結果又開了新文章。
網址在此:http://mk-notes.com/sitesnearme.php
這段 script 會透過 geourl.org 尋找在你網誌方圓 70 公里範圍內的所有網站標在衛星圖片上,而網址預設是我的 (http://mk.netgenes.org),但可加進 url 這個 variable 變成你的(你要在 geourl.org 登記你的網站才成)。就如 http://mk-notes.com/sitesnearme.php?url=http%3A%2F%2Ffoobar.com (以 foobar.com 為中心)。由於 Google Maps API 不允許其他網址在 url 上出現,先要把冒號翻成 %3A,slash 翻成 %2F 才可以騙過 Google,讓網頁找到你的家。
(以下為技術文章)
麻煩死了,初想簡簡單單用一段 fetch XML script 把 geourl.org 的rdf 扯到我的 server 裏去,不過發現裏面太多我不想要的東西,用 javascript 讀起來會很麻煩,便試試用 PHP 把那段 rdf transform 一次 (對,我不懂 XSLT,又懶學)。試著用 xml_parser(),不知為甚麼內容統統不見。dom_xml 更奇怪,居然連續抱怨一空白行上不存在的 variable!後來想起伺服器支援 PHP 5,便索性用 simpleXML,簡單方便的寫完!只是在處理命名空間上有點麻煩,不過相對 xml_parser 及 dom_xml 那只是個小問題。
至於 javascript 嘛,不太難。Google Maps API 也頗實用,只是官網上的文件有錯處,害我撞進死胡同 (其實是設定為衛星圖片的常數多了一個 ‘G’ 開頭)。
Update:
剛弄了套較美觀的介面,除此之外還有給放到網頁上的版本。
Friday, May 13, 2005, 5:50 pm
xml.com 的專欄開始介紹 XHTML 2.0 呢。XHTML 2.0 在語法上有很大變更,例如移除 <br />,換成 <l> … </l>;<img /> 就扔,要用上<object>… 還有新的<nl>呢。看來 W3 要做到 presentation 跟 semantics 絕對分家…
現在我不清楚 HTML 的角色,究竟是一套 presentation language,還是一套 document description language 呢?不過,標準走得太遠,有時也會嚇倒初學用家…… 以後不知道還有沒有人會用 text editor 寫 XHTML 2.0… 我對這套標準的認受性不太樂觀。
Wednesday, April 20, 2005, 6:18 pm
之前有文章提到 RSS 的風波,可是當時我只是 post 了網站,沒有進一步說說這是怎麼的一回事。現在 practical test 完了,也有空打下去啦。
Continue reading ‘RSS 有出路嗎?’ »
Sunday, April 17, 2005, 1:26 am
超連結的概念早於 1965 年便已構思出來。直到80 年代萬維網之父英國人伯納斯-李發明了超文本語言,才將連結的應用實現。連結的用處,通常是將文件內某字句連到其他文本相關的內容。現在我們只要在電腦前用滑鼠一按,瀏覽器便會下載相關於某字的資料,可謂十分之方便。難怪伯納斯-李被封爵,04 年更獲選為最偉大英國人。 Continue reading ‘連結的背後’ »
Saturday, April 16, 2005, 2:01 am
大概現時還有很多人不知道有一種簡便的方法,只需按鍵三兩次,便會自動標出已更新了的 Blog/新聞/資訊/討論區消息,不用再每次按書籤裏的網頁連結逐個看,既省時,又方便。 Continue reading ‘Newsfeed 使用之方法’ »