2012-03-03 2 views
1

Я пытаюсь написать API для мобильного приложения. Я хотел бы вернуть данные в XML. Я использую библиотеку PHP, созданную для Wolfram Alpha, для запроса своих данных и хочу, чтобы мой API работал как переход для мобильного приложения и Wolfram Alpha. Всякий раз, когда я пытаюсь напечатать документ XML после того, как с помощью библиотеки Wolfram Alpha PHP, я получаю сообщение об ошибке из Chrome с указанием:Ошибка SimpleXML при вызове дважды в том же самом исполнении

error on line 7 at column 6: XML declaration allowed only at the start of the document 

я ничего не получаю в IE, и в Firefox я получаю:

XML Parsing Error: XML or text declaration not at start of entity 
Location: http://myfitnessplate.com/api/food-search/name/thisissomethingnotfood/key/HWGCF-YASLT-HOSEC-OZWJH-HETKJ 
Line Number 7, Column 1: 
<?xml version="1.0"?> 
^ 

Без других данных. Я открыл главный файл для библиотеки Wolfram Alpha PHP (WolframAlphaEngine.php) и заметил, что он использует SimpleXML для запроса Wolfram Alpha в следующем коде

$xml = simplexml_load_file($url); 

Я получаю ошибку XML всякий раз, когда я использую библиотеку. Если я не использую библиотеку, вывод XML будет прекрасным. Возможно ли, что «simplexml_load_file» по какой-то причине приводит к поломке моего XML?

Мой код, который не работает при использовании библиотеки, которая использует simplexml_load_file (это делает работу, когда не с помощью библиотеки):

$xml = new SimpleXMLElement('<xml/>'); 
header("Content-Type:text/xml"); 
echo $xml->asXML(); 
+0

Что такое "строка 7 column 6"? Можете ли вы дать больше контекста кода? –

+0

Я не знаю, потому что я не вижу XML. Ниже приводится рендеринг xml до первой ошибки, но там ничего нет. Это просто белый экран. Есть ли что-нибудь еще, что я могу вам дать, что поможет? – tubaguy50035

+0

Из того, что вы говорите, это звучит так, как эта ошибка из * браузера *, который вы используете для просмотра xml? Каков исходный результат из вашего скрипта? –

ответ

1

Я сильно подозреваю, что есть семь строк вывода где-то, прежде чем эхо из вашего XML. Вам нужно отключить этот вывод, потому что это приводит к тому, что ваш xml становится недействительным, что приводит к тому, что ваши браузеры сходят с ума.

Возможно, это сообщение об ошибке из вашей включенной библиотеки. Возможно, в ваших php-файлах есть ведущие или завершающие пробелы. Единственный способ узнать - увидеть исходный вывод до того, как браузер начнет его разбор.

+0

Если я умру перед настройкой заголовка XML, прямо перед печатью XML, источником страницы будет семь строк пробела. Это было бы причиной, правильно? – tubaguy50035

+0

Конечно, пустая строка после закрытия php-тега во всех 7 файлах. Благодаря! – tubaguy50035