Dreamweaver TechniqueJAVA Script サンプル | CSS sample | JAVA Applet sample | Flash Sample
HTML4.0 riference | DynamicHTMLXHTML | XML sample | XSLT sample | RIKO's ASP Trial

特殊文字を扱う

■ 出力エスケープの扱い

このサンプルは、XML文書やXSLファイル中にある特殊文字の扱い方を示すサンプルです。HTMLの場合、<や>は、<と>と記述しますが、XMLの場合も同様です。もし、<要素名><</要素名>といった一行をXSL変換した結果、<要素名><</要素名>のように、記号<がエスケープされずにコードとして解釈されてしまうと、開始タグと終了タグが一対になりません。通常、&や<といった記号はエスケープされます。ただし、xsl:value-of要素やxsl:text要素で、出力エスケープを無効にする(disable-output-escaping)属性を使って、disable-output-escaping="yes"または"no"のように記述すると、出力エスケープで制御することができます。属性値は、yes(出力エスケープが無効)またはno(出力エスケープ有効)で、デフォルトはnoです。値がyesのときは、エスケープされずに出力されます。

text3.xml

 

text3.xsl

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" version="1.0" standalone="yes" indent="yes" />
<xsl:template match="/">
   <xsl:apply-templates select="全体/情報" />
</xsl:template>

<xsl:template match="全体/情報">
<全体>
   <情報>
      <h3><xsl:value-of select="見出し" /></h3>
      <p><xsl:value-of select="文字" disable-output-escaping="no" /></p>
      <div><xsl:text disable-output-escaping="no">&lt;</xsl:text></div>
   </情報>
</全体>
</xsl:template>
</xsl:stylesheet>

※ 出力エスケープを無効にすると、エラーになります。ただし、<-文字列->をテキスト化する場合は、コメントとして扱われるので、エラーにはなりません。
※ Unicodeで出力エスケープを無効にすると、IE6.0ではエラーになります。

text3.hta

<html>
<head>
   <script type="text/vbscript">
   <!--
      option explicit
      dim xmldoc,stylesheet,result
      dim kakikae,fso,f
      sub window_onload()
      set xmldoc=createObject("microsoft.xmldom")
      xmldoc.async=false
      xmldoc.load("text3.xml")

      set stylesheet=createObject("microsoft.xmldom")
      stylesheet.async=false
      stylesheet.load("text3.xsl")

      result=xmldoc.documentElement.transformNode(stylesheet)
      kakikae=Replace(result,"UTF-16","Shift_JIS")
      result=kakikae<

      set fso=createObject("scripting.fileSystemObject")
      set f=fso.openTextFile("c:\data\sample_save\text3_s.xml",2,true)
      f.write result
      f.close
      set f=Nothing

      window.location.href="c:\data\sample_save\text3_s.xml"
      top.window.close()

      end sub
   -->
   </script>
</head>
<body></body>
</html>

 

<<<戻る

R HOUSE | RIKO's Trial Page | Shirley's Pettit Case | Shirley's i-box | Shirley's little box