динамический xml с php

Пытаюсь написать XML-файл, заполненный информацией, полученной из списка каталогов, но я не могу понять, как заставить ментоды createElement хорошо работать с динамическим контентом.

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

мой XML должен быть отформатирован таким образом

<CONTENT>
    <GALLERY name="**HARDCODED DATA**">
        <CATEGORY name="**HARDCODED DATA BASED FROM DIRECTORY SEARCH 1**" desc="**HARDCODED DATA BASED FROM DIRECTORY SEARCH 1**" thumb="**HARDCODED DATA BASED FROM DIRECTORY SEARCH 1**">
            <ITEM>
                <file_path>**dynamic content from directory search**</file_path>
                <file_width>**HARDCODED**</file_width>
                <file_height>**HARDCODED**</file_height>
                <file_title>**dynamic content from directory search**</file_title>
                <file_desc>**Loaded from a seperate txt file, index to match with the index of the dir file**</file_desc>
                <file_image>**Loaded from a seperate txt file, index to match with the index of the dir file**</file_image>
                <featured_image>**Loaded from a seperate txt file, index to match with the index of the dir file**</featured_image>
                <featured_or_not>**Loaded from a seperate txt file, index to match with the index of the dir file**</featured_or_not>
            </ITEM>
****loop through for next ITEM****
        </CATEGORY>
****start next category from secody directory search content****
    </GALLERY>
****start gallery 2 and 3 here, same format at gallery 1****
</CONTENT>

person NekoLLX    schedule 12.07.2012    source источник
comment
Пожалуйста, добавьте свой PHP-код, если вам нужна дополнительная помощь.   -  person Jean-Rémy Revy    schedule 13.07.2012
comment
дальше в комментарии есть ссылки с полным источником, здесь он снова maskedriders.info/Sources /Power%20Rangers/webplayer.phps   -  person NekoLLX    schedule 23.07.2012


Ответы (2)


вы можете использовать функцию urlencode(), чтобы не разбивать XML

echo urlencode("<table><tr><td>Encoded data</td></tr></table>");

вы бы получили

%3Ctable%3E%3Ctr%3E%3Ctd%3EEncoded+data%3C%2Ftd%3E%3C%2Ftr%3E%3C%2Ftable%3E

попробуйте декодировать это с помощью urldecode(), вы получите

<table>
 <tbody>
  <tr>
   <td>Encoded data</td>
  </tr> 
 </tbody>
</table>

Отредактированоя думаю, что нашел вашу проблему, в «Создать список» теги
table
tr
td
ar считаются тегами разметки HTML, а из строки 191 до строки 200 item
file_path
file_width
file_height
file_title
file_desc
file_image
featured_image
featured_or_not
считаются тегами XML и должны анализироваться вместо того, чтобы сбрасывать XML в тело HTML. что вам нужно, если вы хотите, чтобы посетитель вашего веб-сайта имел доступ к XML и анализировал его по своему желанию, XML - это просто дамп XML-разметки в файл, но без тегов HTML вместо этого используйте пользовательские теги, такие как и и пользователь должен анализировать XML, ЕСЛИ он хочет создать из нее таблицу HTML ИЛИ включить закодированный вывод «GenerateList» и распечатать, НО таким образом теги XML, о которых я упоминал выше, НЕ БУДУТ давать вам ожидаемый результат таблицы HTML, вместо этого замените их на TD для представлять ячейку в таблице HTML. надеюсь, это помогло

person Gntem    schedule 12.07.2012
comment
будет ли это работать с пользовательскими тегами, такими как ‹category›‹/category›, и хотя логически я могу записать все это в одну переменную pgp, как мне передать эту переменную парсеру xml, будет ли createElement() работать с огромным потоком кода, вместо одного тега? - person NekoLLX; 13.07.2012
comment
он будет работать в XML-разметке, если имена тегов допустимы (возможна опечатка в ‹category›‹/cat›a‹gory›), вы можете передать закодированное значение в качестве параметра для createElement(tag,urlecode($HTML_MARKUP)) ; чтобы проанализировать это просто... проанализируйте xml и теги/атрибуты, которые, как вы ожидаете, будут жестко закодированы, просто используйте urldecode() для извлечения разметки HTML из закодированного значения. - person Gntem; 13.07.2012
comment
поэтому конечный результат будет выглядеть примерно так: ‹tag›$htmlvalue‹/tag›, верно? - person NekoLLX; 13.07.2012
comment
ну, похоже, он создает правильно отформатированный XML maskedriders.info/Sources/Power%20Rangers/ playlist.xml, однако он также выводит его в браузер maskedriders.info/ Sources/Power%20Rangers/webplayer.php и веб-плеер не могут правильно прочитать - person NekoLLX; 14.07.2012
comment
в вашем xml я не вижу разметку HTML, вместо этого я вижу больше разметки xml, которую вы можете проанализировать с помощью simpleXML, я предложил функцию urlencode для кодирования разметки html в файл xml путем анализа с помощью simplexml и просто декодировать/печатать значения, которые вы создаете разметку html . таким образом, я много раз хранил html в файлах xml, не нарушая разметку xml! - person Gntem; 14.07.2012
comment
я использовал URencode, сначала я генерирую теги и добавляю их в переменную в нормальной форме, затем я беру всю переменную, кодирую ее, затем использую urldecode, когда я передаю ее синтаксическому анализатору xml, вот ссылка на исходную версию phps веб-плеер maskedriders.info/Sources/Power%20Rangers/webplayer.phps - person NekoLLX; 15.07.2012
comment
Пользователь никогда не должен видеть XML, идея в том, что у меня есть ряд каталогов, в которые я загружаю файлы, я хочу, чтобы php считывал каталог и передал результаты в пользовательский код XML, который затем считывается флэш-плеером на серверная часть для заполнения проигрывателя, пользователь никогда не взаимодействует с содержимым XML, содержимое таблицы предназначено для отображения списка файлов, но весь XML должен быть невидимым и находиться на внутренней стороне для флэш-плеера. - person NekoLLX; 15.07.2012
comment
тогда у вас не должно быть необходимости в urlencode, если это способ манипулирования XML, все в порядке! теперь, если вы хотите, чтобы разметка АВТОМАТИЧЕСКИ генерировалась при изменениях, сделайте задание cron для автоматического запуска каждые X минут, а также перепроверьте и сгенерируйте новый XML с примененными изменениями, за исключением того, что вы не можете внедрить какой-либо код из разметки xml (не уверен), если только какой-то javascript, который не даст вам нужной вам функциональности! с другой стороны, вы можете создать PHP-скрипт, который будет проверять все ваши каталоги с заголовком для XML-файла, я считаю, что это лучший способ решить вашу проблему. - person Gntem; 15.07.2012
comment
то, как я это настроил, это когда вы загружаете php-страницу, она ищет каталог и создает xml, может быть немного неэффективно, но на этом этапе разработки перестройка при загрузке работает нормально, я удалил кодировку URL-адреса из кода, но это все еще распечатываю xml, и я не знаю, почему, и флеш-плеер все еще не работает, даже когда я закодировал xml, он работает просто отлично maskedriders.info/Sources/Power%20Rangers/webplayer.php в качестве точки отсчета, если я загружаю этот закодированный вручную XML, он работает нормально, maskedriders.info/Sources/Power%20Rangers/playlist_ORIG.xml - person NekoLLX; 17.07.2012
comment
Хорошо, думаю, я исправил проблему с выводом xml и неправильным сохранением (пришлось вручную преобразовать любой & в и) файл XML загружает весь контент, но все равно не загружается, есть идеи? maskedriders.info/Sources/Power%20Rangers/playlist.xml - person NekoLLX; 23.07.2012
comment
обнаружил проблему, связанную с использованием loadXML вместо apendchild - person NekoLLX; 29.07.2012

обнаружил проблему, связанную с использованием loadXML вместо apendchild

person NekoLLX    schedule 28.07.2012