我反過來問一個問題: xml 是不是由標籤的名稱來判斷他的文件內容型態是什麼?
如果不是;當我的文件做成
<OTHER>
<RSSHEADLINEID>$rss_headline_id</RSSHEADLINEID>
<FIRSTRECORDPOINTER>$IN{CGI_FIRSTRECORDPOINTER}</FIRSTRECORDPOINTER>
<RSSCHANNEL>$CGI_RSSCHANNEL</RSSCHANNEL>
</OTHER>
被ie7 判斷為是一個rss的內容(摘要) ,這樣ie7 是不是就有判斷文件是否為rss
的bugs ? 很明顯的ie7 不能以文件中是否有RSSHEADLINEID OR RSSCHANNEL
tags來當做判斷文件是否為一份rss的依據,因為這兩個字眼非ie7 專屬的保留字
,也非RSS文件專屬的tags
再反過來說,當我的xml 碼為
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE xsl:stylesheet [<!ENTITY nbsp ' '>]>
<?xml-stylesheet type="text/xsl" href='./sm.htm?src=main.xsl' ?>
<ROOT>
<OTHER>
<RSSHEADLINEID>$rss_headline_id</RSSHEADLINEID>
<FIRSTRECORDPOINTER>$IN{CGI_FIRSTRECORDPOINTER}</FIRSTRECORDPOINTER>
<RSSCHANNEL>$CGI_RSSCHANNEL</RSSCHANNEL>
</OTHER>
.....
ie7會顯示,不支援摘要(RSS)包含DTD,然而這顯然不是一份RSS的文件,這份
XML還標示需要XSL 做剖析轉換,然而IE7完全忽略它,光由XML的TAGS就
判斷這份為文件是RSS且他自己又不支援RSS內含DTD,這真是錯誤中的錯
誤,更有趣的是微軟的MVP 告訴我在我的TAGS裏如果插上<rss version="2.0">
...</rss>就會正確(然而這文件本來就不是RSS),結果我前後插入TAGS 後,IE7
第一次讀取網頁會問我是不是要訂閱摘要,我故意訂閱它,第二次讀取網頁後
,IE7 就當掉了必須用CTRL+DEL+ALT 去把IE7刪除才會關閉,我猜想;這本來
就不是RSS,硬要告知IE7這是RSS,於是他可能掉入無窮回圈,HANG住了,真是
錯誤中的錯誤中的錯誤
以上測試也測過將 原先的TAG前面故意加一個字母P,更名後完全正確(IE6 IE7
FIREFOX...都正確 , 原始沒改TAGS名稱的XML只有IE7會出問題)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE xsl:stylesheet [<!ENTITY nbsp ' '>]>
<?xml-stylesheet type="text/xsl" href='./sm.htm?src=main.xsl' ?>
<ROOT>
<OTHER>
<PRSSHEADLINEID>$rss_headline_id</PRSSHEADLINEID>
<FIRSTRECORDPOINTER>$IN{CGI_FIRSTRECORDPOINTER}</FIRSTRECORDPOINTER>
<PRSSCHANNEL>$CGI_RSSCHANNEL</PRSSCHANNEL>
</OTHER>
.....
No comments:
Post a Comment