Есть PHP:
Есть XML:
Есть XSLT (без функции PHP):
Есть XSLT (c функции PHP):
Вопрос: почему когда я вывожу данные из функции он их вставляет в самое начало документа, перед всеми тэгами??? А когда вывожу без функций - все в порядке ... Как сделать так чтоб из функции выводилось на том месте где нужно??? Что не так??? Подскажите плиз ...
Код:
<?php
header("Content-type: text/html; charset=utf-8");
$xmlDoc='index.xml';
$xslDoc='index.xsl';
$xml=new DOMDocument;
$xml->load($xmlDoc);
$xsl=new DOMDocument;
$xsl->load($xslDoc);
$proc=new XSLTProcessor;
$proc->registerPHPFunctions();
$proc->importStylesheet($xsl);
echo $proc->transformToXml($xml);
echo '<br>опаньки!!!';
class testClass{
function testClassFoo(){
$arr=array('test1','test2','test3','test4');
echo '<ul>';
foreach ($arr as $key=>$val){
echo '<li>'.$val.'</li>';
}
echo '</ul>';
}
}
function test() {
$test=new testClass;
$test->testClassFoo();
}
?>
Код:
<?xml version="1.0" encoding="UTF-8"?>
<page>
<wrapper name="wrapperMain">
<wrapper name="wr1">
<modul name="m1"/>
<modul name="m2"/>
</wrapper>
<wrapper name="wr2">
<modul name="m3"/>
<modul name="m4"/>
</wrapper>
<wrapper name="wr3">
<modul name="m5"/>
</wrapper>
</wrapper>
</page>
Код:
<?xml version="1.0" encoding="UTF-8"?>[/size][/font][/color]
[color=#000000][font=Verdana][size=3]<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:php="http://php.net/xsl"
xmlns:fun='test'
xsl:extension-element-prefixes="php">
<xsl:output method="html"/>[/size][/font][/color]
[color=#000000][font=Verdana][size=3] <xsl:template match="/">
<html>
<head>
<title>index.xsl</title>
</head>
<body>
<xsl:call-template name="test"/>
</body>
</html>
</xsl:template>
<xsl:template name="test">
<xsl:value-of select="string('Привет!!!')"/>
</xsl:template>[/size][/font][/color]
[color=#000000][font=Verdana][size=3]</xsl:stylesheet>
Код:
<?xml version="1.0" encoding="UTF-8"?>[/size][/font][/color]
[color=#000000][font=Verdana][size=3]<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:php="http://php.net/xsl"
xmlns:fun='test'
xsl:extension-element-prefixes="php">
<xsl:output method="html"/>[/size][/font][/color]
[color=#000000][font=Verdana][size=3] <xsl:template match="/">
<html>
<head>
<title>index.xsl</title>
</head>
<body>
<xsl:call-template name="test"/>
</body>
</html>
</xsl:template>
<xsl:template name="test">
<xsl:value-of select="php:function('test')"/>
</xsl:template>[/size][/font][/color]
[color=#000000][font=Verdana][size=3]</xsl:stylesheet>