2009-12-23 65 views
0

我的服務器上有一個xml文件。我有以下兩個問題。使用php發送XML

  1. 如何使用php發送這個XML文件到客戶端瀏覽器?
  2. 客戶端將發送ajax get請求到發送xml作爲響應的php腳本。在服務器端我使用php simplexml函數來解析xml數據。但是,在客戶端,解析XML數據的最好方法是什麼?

謝謝

回答

2

你會使用這兩個命令:

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

你沒有說在服務器上接收XML東西,所以我不知道你的分析是什麼意思。

關於在JavaScript中解析XML ...我推遲到有更多經驗的人。

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

然後可以寫xml文件內容:

+0

我相信你正在尋找的函數是'readfile()',而不是'passthru()'。 ('fpassthru()'也可以,如果你有一個文件句柄而不是文件路徑) – pix0r 2009-12-23 18:35:09

+0

@ pix0r:非常感謝你 - 我把它們混淆在內存中。 – gahooa 2009-12-23 18:36:02

1

使用header()函數作爲設置內容類型在HTTP響應。

您必須在之前致電hearder()發送任何輸出。

在客戶端,您可以使用DOM解析JavaScript中的XML。

2

gahooa的代碼發送XML文件到客戶端應該工作得很好。在JavaScript中,您可以使用XML parser來讀取和操作它。但是,這是而不是我會推薦的方法。

而是,讓服務器convert your XML into JSON在使用PHP的file_get_contents()將XML讀取到字符串後。 JavaScript本地可以evaluate JSON

與使用本機JSON相比,您會發現導航XML的DOM很笨拙。

+0

@Dolph:只是很想知道,轉換爲JSON還會導致客戶端性能的提升嗎? – codaddict 2009-12-23 18:50:41

+0

沒有測試/研究,我會說是。因爲JSON是本機數據類型,所以它可以解析數據而不需要解釋/運行任何JavaScript。相反,瀏覽器的JavaScript引擎(用C++等編寫)可以解析。對於XML,它將是一個JavaScript庫進行解析,然後你正在解釋/運行大量額外的*相對*慢的JavaScript。 – Dolph 2009-12-24 23:19:05