неработает Libxml

Тема в разделе "PHP программирование", создана пользователем s10, 17 июн 2006.

Статус темы:
Закрыта.
  1. s10

    s10 Гость

    двс

    запутался в мануале и немогу разобраться с установкой.

    у меня php 5.0.4 под win
    в моей книжке написано вот что : $dom = domxml_new_doc('1.0');
    php на это отвечает : Call to undefined function domxml_new_doc()

    что надо мне сделать для того что бы функция работала ?

    phpinfo пишет что libxml(2.6.11) у меня есть и она active.

    в мануале написано что :

    Это расширение PECL не поставляется вместе с PHP.
    Дополнительная информация, такая как новый версии,
    скачивание, исходные файлы, информация о
    разработчике и CHANGELOG, могут быть
    найдены здесь: http://pecl.php.net/package/domxml.

    скачать http://pecl.php.net/get/domxml - file not found

    далее в мануале написано что (насколько я понял) для работы
    с xml надо сделать библиотеку доступной в систем пасе. и вот её имя :
    For PHP <= 4.2.0, it's libxml2.dll. For PHP >= 4.3.0, it's iconv.dll

    и самое главное :
    And as of PHP 5.0.0, iconv is compiled
    into your Windows PHP binaries by
    default so no extra DLL is needed.

    возможно у меня банан в глазу -
    но руки у меня растут из правильного места.
     
  2. Shtogrin

    Shtogrin Гость

  3. s10

    s10 Гость

    2 shtogrin
    ага. спасиба. теперь она создает объект.

    продолжаю. дальше делаю так :

    Код (Text):
     $dom = domxml_new_doc("1.0");
    $node = $dom->create_element("book");
    var_dump($node);
    результат - null.

    при передаче $node в $dom->append_child($node);
    пишет :
    append_child() expects parameter 1 to be object, null given

    т.е. create_element() не создает элемент ? что у меня опять неправильно ?

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

    спасибо.
     
  4. Andrew Stephanoff

    Andrew Stephanoff Гость

    в 5 php есть объект DOM, лучше работать с ним, т. к. он несовместим с libxml.dll
     
  5. s10

    s10 Гость

    2 Andrew Stephanoff
    вы уж простите - но теперь я уже точно ничего не понял... :D

    вот почему один дядя пишет вот так
    http://chregu.tv/domxml/src/dom.php
    и при этом у него все работает, а у меня нет ?
    мот уже мне пора как у него комменты на немецком писать. :D


    у меня в кнжке рассматривается аналогичный пример генерации xml при помощи dom

    Код (Text):
     $dom = domxml_new_doc("1.0");
    $book = $dom->append_child($dom->create_element("book"));
    $title  = $book->append_child($dom->create_element("title"));
    ....
    или мот приведите пример работы с xml(анализа и генерации xml документов), тока не руками типа цикла по массиву элементов и вывода их принтом, так я тоже умею.

    спасибо.
     
  6. Andrew Stephanoff

    Andrew Stephanoff Гость

    Господи...
    http://www.php.net/manual/ru/ref.domxml.php
     
  7. Andrew Stephanoff

    Andrew Stephanoff Гость

    Для интереса зашел на http://pecl.php.net/package/domxml и что я там увидел:
    Так говоришь, мануал читал? :unsure:
     
  8. s10

    s10 Гость

    двс

    2 Andrew Stephanoff
    ага. читал. опять читал. значицца дом говоришь.
    т.е. то что вот тут, это корректно только для пхп 4 ? я правильно понял ?

    а как с ним работать (с домом).
    вот код из мануала :unsure:
    Код (Text):
    <?php

    $doc = new DOMDocument;

    $node = $doc->createElement("para");
    $newnode = $doc->appendChild($node);

    echo $doc->saveXML();
    ?>
    результат :
    Код (Text):
    Warning: domdocument::domdocument() expects at least 1 parameter, 0 given in C:\s10\xml\test2.php on line 3

    Fatal error: Call to undefined method domdocument::createElement() in C:\s10\xml\test2.php on line 5
    это пример кода из DOMNode->appendChild()


    а при чем тут вот это.
    (в частности "Как поставить php5 DOM и XSL под win32")
    Качать библиотеки и складывать их в system32, что бы "встроенный dom" работал ?

    спасибо.
     
  9. Andrew Stephanoff

    Andrew Stephanoff Гость

     
  10. s10

    s10 Гость

    если призвать конструктор без параметров то вот что
    если передать только версию

    Код (Text):
    <?php
    $dom = new DOMDocument('1.0');
    ?>
    то вот что
    если делать так (кстати тоже из мануала, в описании конструктора Domdocument)
    Код (Text):
    <?php
    $dom = new DOMDocument('1.0', 'iso-8859-1');
    echo $dom->saveXML();
    ?>
    то вот что

    я знаю что ошибка у меня. и что это я что то не доделал. но я уже незнаю куда смотреть.
    прошу помощи. и терпения :rolleyes:
    спасибо.
     
  11. Andrew Stephanoff

    Andrew Stephanoff Гость

    удали php и заново поставь :rolleyes: походу ты с копированием библиотек намудрил
    у меня просто никогда такого не было (может у тебя как раз конфликт DOM и domxml?)
     
  12. s10

    s10 Гость

    2 Andrew Stephanoff

    ты прав. конфликт старого и нового "домов"

    достаточно в php.ini сделать так
    и в коде вот так (я думаю firefox поднимал страницу из кэша)
    Код (Text):
    <?php
    header('Expires: Mon, 23 May 1995 02:00:00 GMT');

    $doc = new DOMDocument('1.0','iso-8859-1');
    $node = $doc->createElement("para");
    $newnode = $doc->appendChild($node);

    echo $doc->saveXML();
    ?>
    и воуля, чистенький мой xml !!!
    Код (Text):
    <?xml version="1.0" encoding="iso-8859-1"?>
    <para/>
    прошу простить за весь флуд.
    просто немного запутался.
    теперь все работает.
    спасибо.
     
  13. malor

    malor Active Member

    Регистрация:
    30 апр 2007
    Сообщения:
    27
    Симпатии:
    0
    Что такое 'part elements' в предложении "One XML document may use part elements to describe parts of books, another may use part elements to describe parts of cars. " ?
     
  14. MajestiC

    MajestiC Гость

    Я вообще использую библиотеку MiniXML и не парюсь насчет проблем с dllками и т.д.
     
Статус темы:
Закрыта.

Поделиться этой страницей