Добро пожаловать на ИТ форум!

После быстрой регистрации у вас будет возможность участвовать в дискуссиях, создавать новые посты, и еще много чего.

Регистрация

Помогите разобраться со странным поведением XSLT+PHPFunctions

Статус
Закрыто для дальнейших ответов.

bogong

Новичок
Регистрация
16.01.2012
Сообщения
1
Есть 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:
Код:
<?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>
Есть XSLT (без функции PHP):
Код:
<?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>
Есть XSLT (c функции PHP):
Код:
<?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>
Вопрос: почему когда я вывожу данные из функции он их вставляет в самое начало документа, перед всеми тэгами??? А когда вывожу без функций - все в порядке ... Как сделать так чтоб из функции выводилось на том месте где нужно??? Что не так??? Подскажите плиз ...
 
Статус
Закрыто для дальнейших ответов.
Верх Низ