За последние 24 часа нас посетил 216151 программист и 2195 роботов. Сейчас ищут 1808 программистов ...

DOMDocument

Тема в разделе "PHP для новичков", создана пользователем Koc, 4 авг 2009.

  1. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    Пользуетесь ли вы DOMDocument, SimpleXML и тому подобными классами? Насколько это оправданно, удобно?

    Сейчас по большей части генерирую XML через шаблонизатор. Надоело.
     
  2. sylex

    sylex Активный пользователь

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    domxml_new_doc по-моему удобно :)
     
  3. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Для анализа и выборки XPath, который в DOM, весьма удобен.
    Данные для вывода генерирую единообразно, а уж там в драйверах шаблонизатора делается преобразование, в том числе и XML/XSL.
     
  4. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    Вроде бы мне даже нравится.

    появились первые проблемы с ASCII.
    $name->appendChild($xml->createCDATASection('Аксессуары')); вызывает ошибку output conversion failed due to conv error

    Если перевести на UNICODE - все норм. Гуглю, найти ответ не могу пока что.

    Временное решение:
    вставляемую строку пропускать через urlencode/htmlentities, и потом весь XML после парсинга через urldecode/html_entity_decode

    Но это временное решение, потому что мне нужно быстро написать модуль. Как по-нормальному решается это?
     
  5. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Koc
    А DOMDocument рабтает с UTF-8 строками. Так что корми ему нужную кодировку. iconv в помощь, если исходник в utf-8 никак.
     
  6. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    я эту XML потом буду использовать на cp1251-странице, так что пока остановлюсь на urlencode-decode
     
  7. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Ну так это в конструкторе DOMDocument задается кодировка вывода.
    А каким образом этот XML будет на страницу попадать? Если через JS, то там все-равно должно быть utf-8.
     
  8. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    оптимизм спадает на нет. Через шаблоны было проще, сейчас я уже начал путаться в куче объектов.
     
  9. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    PHP:
    1.  
    2. <?php
    3. $modifications
    4.     ->setAttribute('id', 'modifications')
    5.     ->setAttribute('state', 'open')
    6.     ->setAttribute('data', "type: 'folder'");
    7.  
    так нельзя. И это печально

    По хорошему нужно было б просто обозвать метод attribute. Один аргумент - получить значение, 2 - установить.

    А еще хорошо б получать массивы в качестве параметров. Ключ - атрибут, значение - значение атрибута
     
  10. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    парсить уже созданный элемент - наверно прикольно. А генерировать - плохо. Имхо.