2009-12-23 3 views
0

У меня есть xml-файл на моем сервере. У меня следующие два вопроса.Отправка xml с помощью php

  1. Как отправить этот XML-файл, используя php для браузера клиентов?
  2. Клиент будет делать запрос на получение ajax скрипту php, который отправляет XML в качестве ответа. На стороне сервера я использую функции php simplexml для анализа данных XML. Но, на конце клиента, что было бы лучшим способом анализа данных XML?

Спасибо

ответ

2

Вы могли бы использовать эти две команды:

<?php 
header('Content-type: text/xml'); 
readfile('/path/to/file.xml'); 

Вы не сказали ничего о получении XML на сервере, так что я не уверен, что вы имеете в виду разборе ,

Что касается синтаксического разбора XML в JavaScript ... Я отношусь к кому-то с большим опытом.

+0

Я считаю, что функция, которую вы ищете, является 'readfile()', а не 'passthru()'. ('fpassthru()' также работал бы, если бы у вас был дескриптор файла, а не путь к файлу.) – pix0r

+0

@ pix0r: Большое вам спасибо - я их перепутал в памяти. – gahooa

1

установить тип содержимого в ответ HTTP с помощью функции заголовка(), как:

header('Content-Type: text/xml'); 

, то вы можете записать содержимое файла XML.

Вы должны позвонить слушателю() до любой выход отправлен.

С клиентской стороны вы можете анализировать XML в JavaScript с помощью DOM.

2

Код gahooa для отправки XML-файла клиенту должен работать нормально. В JavaScript вы можете использовать XML parser, чтобы читать и манипулировать им. Однако это не подход, который я бы рекомендовал.

Вместо, пусть сервер convert your XML into JSON после использования РНР file_get_contents() для чтения XML в строку. JavaScript может изначально evaluate JSON.

Вы обнаружите, что перемещение DOM XML неудобно по сравнению с работой с родным JSON.

+0

@Dolph: Любопытно узнать, будет ли преобразование в JSON также улучшением производительности на стороне клиента? – codaddict

+0

Без тестирования/исследования я бы сказал «да». Поскольку JSON является родным типом данных, он может анализировать данные без интерпретации/запуска любого JavaScript. Вместо этого обработчик JavaScript браузера (написанный на C++ и т. Д.) Будет выполнять синтаксический анализ. Для XML это будет библиотека JavaScript, выполняющая синтаксический анализ, а затем вы будете интерпретировать/запускать много дополнительного, * относительно медленного JavaScript. – Dolph

Смежные вопросы