XSLTをHTMLとして出力していましたが、検証の理由からXMLとして出力する方が優れていることを読みました。したがって、出力をHTMLからXMLに変更するとページが台無しになります。つまり、XSLTファイルからすべてのHTML要素を削除する必要があるということですか?また、外部CSSファイルを介してスタイリングしています。XMLとして出力する場合、スタイリングはXSLTファイル内にある必要がありますか?
このページのコードは次のとおりです。
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="xml"
doctype-system="http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd"
doctype-public="-//WAPFORUM//DTD XHTML Mobile 1.2//EN" />
<xsl:template match="/">
<xsl:element name="head">
<xsl:element name="title">Selected Flight Route</xsl:element>
<link rel="stylesheet" type="text/css" href="mystyles.css" title="Style"/>
</xsl:element>
<xsl:element name="body">
<xsl:element name="div"><!-- This holds the navigation bar-->
<xsl:attribute name="id">
<xsl:text>navdiv</xsl:text>
</xsl:attribute>
<xsl:element name="div"><!-- This holds the image links-->
<xsl:attribute name="id">
<xsl:text>navlinks</xsl:text>
</xsl:attribute>
<xsl:element name="a">
<xsl:attribute name="id">
<xsl:text>navlinksone</xsl:text>
</xsl:attribute>
<xsl:attribute name="href">flights.php</xsl:attribute>
</xsl:element>
<xsl:element name="a">
<xsl:attribute name="id">
<xsl:text>navlinkstwo</xsl:text>
</xsl:attribute>
<xsl:attribute name="href">planes.php</xsl:attribute>
</xsl:element>
<xsl:element name="a">
<xsl:attribute name="id">
<xsl:text>navlinksthree</xsl:text>
</xsl:attribute>
<xsl:attribute name="href">weatherfeed.php</xsl:attribute>
</xsl:element>
</xsl:element>
</xsl:element><!-- End the navigation bar-->
<xsl:element name="div"><xsl:attribute name="id">
<xsl:text>maindiv</xsl:text>
</xsl:attribute>
<h1 id="heading">Flights and planes</h1>
<xsl:element name="div"><xsl:attribute name="id">
<xsl:text>divone</xsl:text>
</xsl:attribute><img width="30" height="30" src="globe.png"/><p class="centerp">Selecting the Globe will display all flight routes.</p></xsl:element>
<xsl:element name="div"><xsl:attribute name="id">
<xsl:text>divtwo</xsl:text>
</xsl:attribute><img width="75" height="30" src="planepic.png"/><p class="centerp">Selecting the Plane will display all Aircraft info.</p></xsl:element>
<xsl:element name="div"><xsl:attribute name="id">
<xsl:text>divthree</xsl:text>
</xsl:attribute><img width="32" height="30" src="weather.png"/><p class="centerp">The Weather icon displays the weather in all citys.</p></xsl:element>
</xsl:element>
</xsl:element>
<!-- End the Body element -->
</xsl:template>
<!-- End the Main Template element -->
</xsl:stylesheet>
これがXMLとして出力されたページへのリンクです。これがHTMLとして出力された同じページです。XMLとして出力するときにこれが私のページを台無しにしている理由を誰かに教えてもらえますか?問題が何であるかを調査しているときに、XMLとして出力されるサンプルファイルにHTML要素が含まれていないように見えることに気付きました。
XMLの変換に使用する元のファイルは次のとおりです。
<?php
$xml = new DOMDocument();
$xml->load('flights.xml');
$xsl = new DOMDocument;
$xsl->load('index.xsl');
$proc = new XSLTProcessor();
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
?>