Style XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:apply-templates select="child::names"/>
</xsl:template>
<xsl:template match="child::names">
<xsl:apply-templates select="child::name[4]/attribute::title"/>
</xsl:template>
<xsl:template match="child::name[4]/attribute::title">
<xsl:text>The XML 1.0 WG's </xsl:text>
<xsl:value-of select="self::node( )"/>
<xsl:text> was </xsl:text>
<xsl:value-of select="parent::name/child::given"/>
<xsl:text> </xsl:text>
<xsl:value-of select="parent::name/child::family"/>
<xsl:text>.</xsl:text>
</xsl:template>
</xsl:stylesheet>
Dokument XML:
<names>
<name>
<family>Angerstein</family>
<given>Paula</given>
</name>
<name title="chair">
<family>Bosak</family>
<given>Jon</given>
</name>
<name title="editor">
<family>Bray</family>
<given>Tim</given>
</name>
<name title="technical lead">
<family>Clark</family>
<given>James</given>
</name>
<name>
<family>Connolly</family>
<given>Dan</given>
</name>
<name>
<family>DeRose</family>
<given>Steve</given>
</name>
<name>
<family>Hollander</family>
<given>Dave</given>
</name>
<name>
<family>Kimber</family>
<given>Eliot</given>
</name>
<name>
<family>Magliery</family>
<given>Tom</given>
</name>
<name>
<family>Maler</family>
<given>Eve</given>
</name>
<name>
<family>Maloney</family>
<given>Murray</given>
</name>
<name>
<family>Murata</family>
<given>Makoto</given>
</name>
<name>
<family>Nava</family>
<given>Joel</given>
</name>
<name>
<family>O'Connell</family>
<given>Conleth</given>
</name>
<name title="editor">
<family>Paoli</family>
<given>Jean</given>
</name>
<name>
<family>Sharpe</family>
<given>Peter</given>
</name>
<name title="editor">
<family>Sperberg-McQueen</family>
<given>C. M.</given>
</name>
<name>
<family>Tigue</family>
<given>John</given>
</name>
</names>
Kod PHP
<?php
$xml = new DOMDocument();
$xml->load("doc.xml");
$xslt = new XSLTProcessor();
$xsl = new DOMDocument();
$xsl->load("style.xsl");
$xslt->importStylesheet( $xsl );
echo $xslt->transformToXML( $xml ); ?>
No i wynik powinien wyglądać następująco:
The XML 1.0 WG's technical lead was James Clark.
A tak nie jest :/
A w przeglądarce działa to normalnie, może mi to ktoś wyjaśnić, może coś źle robię?
Ten post edytował deirathe 25.06.2009, 21:00:13