XHTML to XHTML のXSLT変換に成功
先日のXSLTの続き
003 覧さんを参考にやり直したところ成功。006でソースを載せたのでこちらでも載せておく。
<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="xslt_test.xsl"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title>XML: XSLT TEST</title> </head> <body> <h1>XSLT TEST</h1> <p>hogehoge</p> </body> </html>
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xml:lang="ja" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://www.w3.org/1999/xhtml" exclude-result-prefixes="h"> <xsl:output method="html" encoding="utf-8" media-type="text/html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"/> <xsl:template match="/"> <html xml:lang="ja"> <head> <title>XSL TEST</title> <link rel="stylesheet" href="xslt_test.css" type="text/css"/> </head> <xsl:apply-templates select="/h:html/h:body"/> </html> </xsl:template> <xsl:template match="h:body"> <body> <h1><xsl:value-of select="h:h1"/></h1> <p><b><xsl:value-of select="h:p"/></b></p> </body> </xsl:template> </xsl:stylesheet>
変換前の基XHTMLに名前空間が割り当てられていたからtemplateでmatchしなかったのかな。まだ良く分かってない。