靈魂-放水

          為學日益,為道日損。

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

          在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
          主站蜘蛛池模板: 崇文区| 梧州市| 鞍山市| 鄂伦春自治旗| 德江县| 南阳市| 于田县| 瓮安县| 莒南县| 沧源| 柳河县| 英吉沙县| 始兴县| 清镇市| 子长县| 苏尼特右旗| 新疆| 中牟县| 河津市| 古蔺县| 台山市| 佛山市| 普兰店市| 鹰潭市| 芦溪县| 乌拉特前旗| 林西县| 英超| 临泉县| 永寿县| 长垣县| 莒南县| 日喀则市| 景洪市| 根河市| 伊川县| 安乡县| 柘城县| 襄樊市| 舒城县| 齐齐哈尔市|