Avatar billede claus_joergensen Nybegynder
10. maj 2005 - 11:52 Der er 7 kommentarer

Indrykninger med PHP og XSLT ?

Hej

Hvordan får jeg indrykninger med i mit output med XSLT og PHP ?

layout.xsl

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"
media-type="text/html"
cdata-section-elements="style"
encoding="iso-8859-1"
doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
indent="yes" />
  <xsl:template match="/">
    <html>
      <head>
        <title> <xsl:value-of select="root/side[@id='forsiden']/title"/> </title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <link rel="stylesheet" type="text/css" href="silver_silo.css" />
        <link rel="stylesheet" type="text/css" href="standard.css" />
        <script type="text/javascript" src="silver_silo.js"></script>
        <style type="text/css">
          #indhold
          {
            border: 2px solid orange;
            width: 200px;
            height: 200px;
            margin: 0 auto;
          }
        </style>
      </head>
      <body>
        <div id="indhold">
          <xsl:value-of select="root/side[@id='forsiden']/indhold" />
        </div>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

layout.xml

<?xml version="1.0" encoding="iso-8859-1"?>
<root>
  <side id="forsiden">
    <title>Forsiden</title>
    <logo>logo1.jpg</logo>
    <indhold>Lorem ipsum</indhold>
  </side>
  <side id="foo">
    <title>Foo</title>
    <logo>logo2.jpg</logo>
    <indhold>Foo bar</indhold>
  </side>
</root>

layout.php

<?php

$xsl_filename = "layout.xsl";
$xml_filename = "layout.xml";

$xsl = new XSLTProcessor();
$xsl->importStyleSheet(DOMDocument::load($xsl_filename));
echo $xsl->transformToXML(DOMDocument::load($xml_filename));

?>
Avatar billede janegil Nybegynder
10. maj 2005 - 20:09 #1
OK. Du lager en html-div med de to ordene "Lorem ipsum". Hvor er det du vil ha innrykkene?
Avatar billede claus_joergensen Nybegynder
10. maj 2005 - 23:10 #2
vil gerne have at html koden har samme indrykninger som den er i xslt koden, lige nu bliver det bare mast sammen på et par linjer.
Avatar billede janegil Nybegynder
11. maj 2005 - 11:12 #3
Det er noe som heter indent i http://www.w3.org/TR/xslt#output »indent specifies whether the XSLT processor MAY add additional whitespace when outputting the result tree; the value must be yes or no«. Men det er nok ingen garanti for at prosessoren faktisk gjør dette. Så skal du eventuelt sette inn xsl:text noder med mellomrom, cr/lf og kanhende tab. Og &#x0009; &#x000A; &#x000D;.
Avatar billede claus_joergensen Nybegynder
12. maj 2005 - 02:08 #4
tjoo, men kan jeg ikke få min processor til at virke med indent istedet ? på en eller anden måde, det vile være mest optimalt kodemæssigt at gøre.
Avatar billede janegil Nybegynder
13. maj 2005 - 09:43 #5
Hvilken XSLT-prosessor bruker du? Egentlig vil jeg vite hvordan du bruker den, dvs. i en webbrowser? I server-side i IIS? Offline i en bat-fil? I sistnevnte tilffelle kunne http://www.w3.org/People/Raggett/tidy/ være et alternativ?
Avatar billede claus_joergensen Nybegynder
13. maj 2005 - 10:26 #6
(Som nævn) bruger jeg det samme med et php script, på en Apache server.
PHP5, Apache 1.x , jeg ved ikke lige hvordan jeg får min version af sabletron frem, så den kan jeg desværre ikke sige.
Avatar billede janegil Nybegynder
13. maj 2005 - 11:04 #7
Det skulle være et par muligheter.
- Prøve å se om en nyere versjon av Sablotron eller PHP har bedre støtte for indent. (Har ikke de nyeste PHP droppet Sablotron, mon tro?)
- Se om du kan pynte opp HTML-koden i et eget trinn, etter at XSLT har generert den. Noe i stil med Tidy extension for PHP, se http://www.zend.com/php5/articles/php5-tidy.php
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester