У меня возникли проблемы с загрузкой XML-фида с помощью php-скрипта. Я делаю копию фида на своем веб-сайте и загружаю его, поэтому я знаю, что я отлаживаю. Каждая запись в файле имеет пространство имен (есть несколько разных).Загрузка XML, возможное неправильное пространство имен или неправильное выполнение?
Это мой первый раз, когда мы сталкиваемся с пространствами имен, и я не могу даже загрузить файл. Когда я пытаюсь
$xml = new SimpleXMLElement($result) or die("Error: Cannot create object\n<hr>".$result);
Стреляет ошибку. Это работало для десятка различных каналов, у которых нет пространств имен (или, по крайней мере, я не заметил никаких пространств имен). Я пробовал различные способы получить больше информации о том, почему он не может создать simpleXMLElement, и пока никто из них не возвращает проблему.
Я помахал кормом xml с помощью 4 различных онлайн-валидатов. 3, кажется, используют javascript и говорят, что фид прекрасен, 4-й номер http://www.xmlvalidation.com/ загружает код на свой сайт и возвращает сообщение об ошибке с их сайтом. (С другими xml их валидатор работает нормально.)
Я думаю Я сузил проблему до материала пространства имен. Если я удалю содержимое пространства имен вверху, я могу загрузить файл xml с указанным выше кодом, а затем я получу беспорядок ошибок пространства имен. Ниже вы можете увидеть информацию о пространстве имен.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:timeSeriesResponse xsi:schemaLocation="http://www.cuahsi.org/waterML/1.1/ http://waterservices.usgs.gov/WaterML-1.1.xsd" xmlns:ns1="http://www.cuahsi.org/waterML/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:queryInfo xmlns:ns2="http://www.cuahsi.org/waterML/1.1/">
Ссылка на XML-странице образца http://waterservices.usgs.gov/nwis/iv/?format=waterml,1.1&sites=06306300¶meterCd=00060,00065
Что именно вы хотите сделать? только создать SimpleXmlObject? –
Я хочу обработать XML-канал, извлечь различные данные, которые полезны, а затем использовать его для создания страницы на моем сайте. С помощью каналов из других источников я создал SimpleXmlObject, а затем использовал xpath(), чтобы найти то, что я ищу. Если есть еще один лучший способ, я играю. – Brandan
см. Мой ответ. Надеюсь, он решит вашу проблему. –