靈魂-放水

          為學日益,為道日損。

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            296 Posts :: 10 Stories :: 274 Comments :: 0 Trackbacks

          公告

          在讀書目更新ing:

          想讀書目更新ing:

          常用鏈接

          留言簿(24)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Favorite Sports

          My Favorite sites

          博客-同享

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          在xml應用中,經常將一些URL信息作為xml數據存儲,其中URL參數有可能包含有中文字符。
          當使用dom對xml數據進行解析時,可以對中文字符進行編碼。
          但如果只使用xslt來顯示xml數據時(data.xml+data.xsl),發現此時的URL會出現編碼錯誤.
          即使指定編碼類型(encoding=gb2312),依然會出現同樣的問題.
          測試發現:是IE的緩存機制問題,IE仍會把新的頁面(所鏈接的URL)的MIME內容類型默認為text/xml

          解決方法:
          1.指定輸出文檔類型為xml文檔? (example:data.xsl)
          ?<xsl:output method=xml? encoding=gb2312 media-type=text/xml />
          2.在新的窗口打開,給聯接增加屬性,指明目標窗口為其他窗口? (example:data2.xsl)
          ?<xsl:attribute name=target>_blank</xsl:attribute>


          examples:


          /*** data.xml ***/

          <?xml version=1.0 encoding=gb2312?>
          <?xml-stylesheet type=text/xsl href=data.xsl?>
          <root>
          ?<search>
          ??<url>http://www.google.com/search?q=</url>
          ??<word>xml數據</word>
          ?</search>
          ?<search>
          ??<url>http://www1.baidu.com/baidu?word=</url>
          ??<word>xml數據</word>
          ?</search>
          ?<search>
          ??<url>http://www.google.com/search?q=</url>
          ??<word>極限編程(xp)</word>
          ?</search>
          ?<search>
          ??<url>http://www1.baidu.com/baidu?word=</url>
          ??<word>極限編程(xp)</word>
          ?</search>
          </root>


          /*** data.xsl ***/

          <?xml version=1.0 encoding=gb2312?>
          <xsl:stylesheet version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform>
          <!-- 去掉下面一句,將出現錯誤 -->
          <xsl:output method=xml? encoding=gb2312 media-type=text/xml />

          <xsl:template match=/>
          ?<xsl:apply-templates />?
          </xsl:template>

          <xsl:template match=search>
          ?<xsl:element name=a>
          ??<xsl:attribute name=href><xsl:value-of select=url /><xsl:value-of select=word /></xsl:attribute>
          ??<xsl:value-of select=word />
          ?</xsl:element>
          ?<br />
          </xsl:template>

          </xsl:stylesheet>


          /*** data2.xsl ***/

          <?xml version=1.0 encoding=gb2312?>
          <xsl:stylesheet version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform>

          <xsl:template match=/>
          ?<xsl:apply-templates />?
          </xsl:template>

          <xsl:template match=search>
          ?<xsl:element name=a>
          ??<xsl:attribute name=href><xsl:value-of select=url /><xsl:value-of select=word /></xsl:attribute>
          ??<!-- 去掉下面一句,將出現錯誤 -->
          ??<xsl:attribute name=target>_blank</xsl:attribute>
          ??<xsl:value-of select=word />
          ?</xsl:element>
          ?<br />
          </xsl:template>

          </xsl:stylesheet>

          posted on 2006-04-27 23:18 放水老倌 閱讀(767) 評論(0)  編輯  收藏 所屬分類: XML
          主站蜘蛛池模板: 邹城市| 彭山县| 怀仁县| 景德镇市| 肇州县| 久治县| 武宁县| 高唐县| 德昌县| 南溪县| 尖扎县| 延安市| 理塘县| 浪卡子县| 渭南市| 云和县| 云安县| 龙陵县| 西充县| 灌阳县| 青州市| 宁武县| 兴化市| 尼玛县| 开江县| 静海县| 广水市| 磐石市| 洪雅县| 抚顺市| 黔西县| 商都县| 澳门| 长岭县| 峨山| 金溪县| 安西县| 景东| 同仁县| 印江| 乾安县|