Баг DOM???

Pauliceman

Новичок
Баг DOM???

Все функции DOM работают (он естественно включен), а вот simplexml_import_dom() нивкакую не видит... Где грабли могут быть зарыты? Может кто знает???
 

svetasmirnova

маленький монстрик
>simplexml_import_dom() нивкакую не видит
У меня видит: reproduce code, please.
 

Pauliceman

Новичок
Вот простейший сэмпл, в котором у меня пхп жалуется на неопределенную функцию simplexml_import_dom()
<?php
$dom = new domDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
echo 'Error while parsing the document';
exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title; // blah
?>

-~{}~ 23.11.05 13:20:

SimpleXML:
- Revision $Revision: 1.139.2.4 $
- Schema support enabled

DOM:
DOM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.6.22
HTML Support enabled
XPath Support enabled
XPointer Support enabled
Schema Support enabled
RelaxNG Support enabled

-~{}~ 23.11.05 13:49:

Что самое интересное, следующий сэмпл работает без проблем:
<?php
$string = <<<XML
<a>
<foo name="one" game="lonely">1</foo>
</a>
XML;

$xml = simplexml_load_string($string);
foreach($xml->foo[0]->attributes() as $a => $b) {
echo($a."=".$b."<br>");
}
?>
 

BeGe

Вождь Апачей, блин (c)
PHP:
<?php
$dom = new domDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
        echo 'Error while parsing the document';
        exit;
}

$s = simplexml_import_dom($dom);

var_dump($s->book[0]->title); // blah
?>
Работает.....
 

Profic

just Profic (PHP5 BetaTeam)
Configure Command: cscript /nologo configure.js "--enable-debug-pack" "--enable-prefix=c:\web files\php51-cvs" "--enable-cli-win32" "--enable-apache2handler" "--without-gd" "--enable-mbstring=shared" "--enable-mbregex=shared" "--enable-sockets=shared" "--with-xsl=shared" "--with-mysql=shared" "--with-mysqli=shared" "--with-sqlite=shared" "--enable-pdo=shared" "--with-pdo-mysql=shared" "--with-pdo-sqlite=shared" "--with-xdebug=shared"

dom
DOM/XML: enabled
DOM/XML API Version: 20031129
libxml Version: 2.6.22
HTML Support: enabled
XPath Support: enabled
XPointer Support: enabled
Schema Support: enabled
RelaxNG Support: enabled

SimpleXML
Simplexml support: enabled
Revision: $Revision: 1.151.2.6 $
Schema support: enabled

E:\>php -v
PHP 5.1.0RC5-dev (cli) (built: Nov 21 2005 13:17:42)
Copyright (c) 1997-2005 The PHP Group
Zend Engine v2.1.0-dev, Copyright (c) 1998-2005 Zend Technologies

E:\>php
PHP:
<?php
$dom = new domDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
echo 'Error while parsing the document';
exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title; // blah
?>
^Z
blah
E:\>

-~{}~ 23.11.05 16:40:

Фря? Самосборка с --disable-all?
В общем пинайте кого нада :):
PHP:
function_entry simplexml_functions[] = {
    PHP_FE(simplexml_load_file, NULL)
    PHP_FE(simplexml_load_string, NULL)
#ifdef HAVE_DOM
    PHP_FE(simplexml_import_dom, NULL)
#endif
    {NULL, NULL, NULL}
};
(с) http://cvs.php.net/co.php/php-src/ext/simplexml/simplexml.c?r=1.139.2.4.
 

Pauliceman

Новичок
Да... Шестая фря... сейчас все гениально переделаю... (но домовские ф-и и ф-и simplexml все работают кроме одной:))
 

Profic

just Profic (PHP5 BetaTeam)
Pauliceman
Кусок исходика я зачем привел? Все генальное - просто :) Мейнтейнер порта php во фре решил, что --disable-all это хороший параметр к configure. И все расширения собиратся по отдельности динамическими модулями. В том числе и simplexml. Однако как видно в данном примере при таком подходе при сборке simplexml директива препроцессора HAVE_DOM не определяется. Потому и функции такой нет.
 

Pauliceman

Новичок
Спасибо... :) Сейчас мэйкфайл поправлю, чтобы из исходников не собирать...
 
Сверху