alekciy
Новичок
Как правильно создать класс потомок для DOMDocument ?
Apache/2.0.52 (Win32) PHP/5.2.3
Не могу понят почему не получается создать класс потомок. Пример:
Получаю в браузере пусто. В то время как имеется такой вот скрипт который отлично работает:
Если же для первого примера прописать header, то браузер выдает ошибку:
Ошибка синтаксического анализа XML: элемент не найден
Строка 1, символ 1:
В чем может быть дело?
-~{}~ 14.08.07 18:50:
Кстати. В обоих случаях загружается один и тот же XML файл.
parent::load($xml_file) дает true.
Apache/2.0.52 (Win32) PHP/5.2.3
Не могу понят почему не получается создать класс потомок. Пример:
PHP:
<?php
class XML extends DOMDocument
{
function __construct($xml_file)
{
parent::load($xml_file);
}
};
$doc = new XML('xml.xml');
$doc->saveXML();
?>
PHP:
<?php
class DOMDocumentStylesheet extends DOMDocument {
function __construct($xml_file,$href_stylesheet)
{
$handle = fopen($xml_file, "r");
$contents = fread($handle, filesize($xml_file));
//т.к. далее в регулярке наличие символа < в начале строки приводит к зависанию, то его вырезаем
$contents = mb_substr($contents,1);
fclose($handle);
preg_match("/\?xml\s.+\?>/",$contents,$matches);
$contents = str_replace($matches[0],'<'.$matches[0].'<?xml-stylesheet type="text/xsl" href="'.$href_stylesheet.'"?>',$contents);
parent::loadXML($contents);
};
}
};
$xml = new DOMDocumentStylesheet('xml.xml','xslt-template/draw_xml_tree.xsl');
$xml->validateOnParse = true;
$xml->preserveWhiteSpace = false;
header('Content-Type: application/xml');
echo $xml->saveXML();
?>
Ошибка синтаксического анализа XML: элемент не найден
Строка 1, символ 1:
В чем может быть дело?
-~{}~ 14.08.07 18:50:
Кстати. В обоих случаях загружается один и тот же XML файл.
parent::load($xml_file) дает true.