前段時間無意間看到一個博客的RSS可以用XSL格式輸出并且能在Firefox里瀏覽,想到自己以前寫的一個XML留言簿因為不兼容Firefox所不了了之了,現在看到他的能在Firefox瀏覽就覺得很好奇,看了一下代碼,一句一句的比對,最后終于找到了原因,也就把這個留言簿給完成了。因為是一個簡單的XML留言簿,所以取名SXGB(Simple XML GuestBook)。
留言本演示,管理密碼為test:http://home.goofar.com/hotheart/gbook/gbook.asp
首先定義留言簿的XML文檔的格式。作為一個留言簿,不需要太復雜的內容,于是我就給留言內容分為3個部分:留言者姓名、留言者主頁和留言內容。另外,一個留言簿還需要有使用者的一些信息,包括用戶名和用戶主頁。再有,在留言比較多時還需要分頁信息。大致結構完成后就可以開始寫XML文檔模板了。
XML文檔根元素定義為gbook
XML文檔模板gbook.xml
CODE:
xml version="1.0" encoding="utf-8"?>
<!-- DTD file -->
<!DOCTYPE gbook SYSTEM "sxgb.dtd">
<!-- XSL file -->
<?xml-stylesheet type="text/xsl" href="gbook.xsl"?>
<gbook>
<!-- 留言簿相關信息 -->
<info>
<!-- 用戶名 -->
<user>HotHeart</user>
<!-- 用戶主頁 -->
<home>http://www.xujiwei.cn</home>
<!-- 分頁信息,分別為目前所在頁,總頁數,上一頁,下一頁 -->
<pagenow>1</pagenow>
<pagetotal>1</pagetotal>
<pageprev>1</pageprev>
<pagenext>2</pagenext>
<!-- 是否已經登陸,用來處理是否顯示登陸框 -->
<logined>NO</logined>
</info>
<!-- 留言列表 -->
<messages>
<!-- 一個留言 -->
<message>
<!-- 留言ID -->
<id>1</id>
<!-- 留言者姓名 -->
<username>Admin</username>
<!-- 留言時間 -->
<time>2005-08-09 12:00</time>
<!-- 留言者主頁 -->
<homepage>http://www.xujiwei.cn/</homepage>
<!-- 留言內容 -->
<content><![CDATA[ 留言內容 ]]></content>
</message>
</messages>
</gbook>
要注意在引用XSL時不能用
<?xml:stylesheet type="text/xsl" href="gbook.xsl"?>
xml和stylesheet之間應該用一杠(-)而不能用冒號(:),在Firefox里是不支持用冒號的。
一個好的XML文檔,除了要有結構性,還應該要有有效性,所以在XML文檔的一開頭就定義了文檔類型定義(DTD) sxgb.dtd,下面就來把這個文檔類型定義給完成。因為已經設計好留言簿XML文檔的結構,所以寫出DTD是很方便的。
文檔類型定義sxgb.dtd
CODE:
<?xml version="1.0" encoding="utf-8"?>
<!ELEMENT gbook (info,messages)>
<!ELEMENT info (user,home,msgtotal,pagenow,pagetotal,pageprev,pagenext,logined)>
新聞熱點
疑難解答