Misc Change Log

`OpenBSD で scheme のアプリ開発' みたいなことをやってます。




disable-output-escaping="yes" が mozilla にはないんだけどー。みたいなお話。 bugzilla 参照。

とりあえず、#11 の W3C の部分を訳してみた。

An XSLT processor will only be able to disable output escaping if it controls how the result tree is output. This may not always be the case. For example, the result tree may be used as the source tree for another XSLT transformation instead of being output. An XSLT processor is not required to support disabling output escaping. If an xsl:value-of or xsl:text specifies that output escaping should be disabled and the XSLT processor does not support this, the XSLT processor may signal an error; if it does not signal an error, it must recover by not disabling output escaping.


処理済みのツリーをどのように出力するかを XSLT プロセッサが制御するの場合にのみ、 出力のエスケープは無効にできる。 これは常に成立するものではない。 例えば、処理済みのツリーは他の XSLT 変換器が代わりとなって出力をするために、 ソースツリーとして利用するかもしれない。 出力のエスケープ無効化のサポートは XSLT プロセッサにとって必須ではない。 もし、xsl:value-of または xsl:text が出力のエスケープ無効化を指定してあり、 かつ、XSLT プロセッサが出力のエスケープ無効化をサポートしないのであれば、 XSLT プロセッサはエラーシグナルを発生させるだろう; エラーシグナルを発生させないのであれば、出力のエスケープを無効化せずに復帰すべきである。



代替案としては上のリンクにあるように、innerHTML をいじればいいのだろうか。

      <script type="text/javascript">
        function onload_cb() {
            var elements = document.getElementsByTagName('div');
            for (var i = 0; i &lt; elements.length; i++) {
                var el = elements[i];
                if (el.className == 'description') {
		    el.innerHTML = el.textContent;
	<xsl:if test="system-property('xsl:vendor')='Transformiix'">
	  <xsl:attribute name="onload">onload_cb()</xsl:attribute>
	<div class='description'>
	  <xsl:value-of select="content:encoded" disable-output-escaping="yes"/>

みたいにしてみたけど、innerHTML に代入するところで例外吐いて死ぬ。ううむ。

Posted at 12:28 | Permalink | Category | Comments