※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

XSLTについて書きたいなぁと。

XMLのノードを部屋やフォルダにたとえて、templateを「~の部屋に着いた時の指示」と思えばいいかなと。

HTMLを先にちょろっと説明したほうが合理的なのかもしれない。


テンプレ

XSLTを使うときに一番めんどくさいのが冒頭の数行。XMLファイル側は
<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="oooo.xsl" ?>
みたいに書いて、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="html" encoding="Shift_JIS"/>
 ...本文...
</xsl:stylesheet>
と書く。

namespaceは非常に取っ付きづらい概念ですが、とりあえず xsl:oooo てやつらだけ使えるように準備する。
出力されるHTMLにDOCTYPE宣言を含ませたいときは、 xsl:output にもっと色々属性をつけてやる。
DTD? なにそr(ry


nbsp

使わずに済めばそれに越したことはないけど、いつもどこかで顔を出す。そんな&nbsp;をXSLTで出力するには
<xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
とする。

XML側で使う場所をちょこちょこ指定したいときは
<xsl:template match="nbsp">
  <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
</xsl:template>
みたいなテンプレートを作っておいて、XML側で<nbsp/>と書けばいい。