Articles of xml namespaces

XMLReader – как обрабатывать незадекларированное пространство имен

Я читаю большой файл размером ~ 300 Мб gzipped с XMLReader, который автоматически загружается на мой сервер (архаично, я знаю ..) Он неверен, т. Е. Имеет неопределенное пространство имен и вызывает ошибку ErrorException [Warning]: Ошибка пространства имен XMLReader :: read (): префикс пространства имен xsi для AttrName в NodeName не определен Каков наилучший способ справиться […]

Анализ XML с несколькими пространствами имен

Поэтому я хотел разобрать этот XML: <?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <requestContactResponse xmlns="http://webservice.foo.com"> <requestContactReturn> <errorCode xsi:nil="true"/> <errorDesc xsi:nil="true"/> <id>744</id> </requestContactReturn> </requestContactResponse> </soapenv:Body> </soapenv:Envelope> В частности, я хочу получить значение тега <id> Вот что я пробовал: $dom = new DOMDocument; $dom->loadXML($xml); $dom->children('soapenv', true)->Envelope->children('soapenv', true)->Body->children()->requestContactResponse->requestContactReturn->id; Но я получаю сообщение об ошибке: PHP Неустранимая ошибка: […]

PHP-скрипт не может читать xml-данные с помощью двоеточия (:)

Я попытался прочитать ytube xml data width php, но застрял, потому что youtube использует двоеточие (:) в своем API. Чтобы быть точным, вот сценарий, который я использую: $video = array('/some arrays here,separated width commas/');// array of youtube videos $v = preg_replace("/[^A-Za-z0-9\-\_]/","",$_GET["v"]); // make sure "v" parameter is sanitized if(!empty($v) && in_array($v,$video)){ //check if parameter "v" […]

Как обнаружить и удалить ненужные атрибуты xmlns: <something> в PHP DOM?

Скажем, у меня есть исходный документ: <element> <subelement xmlns:someprefix="mynamespace"/> </element> xmlns:someprefix , очевидно, здесь не требуется, и ничего не делает, поскольку этот префикс не используется в этом элементе (или в моем случае в любом месте документа). В PHP, после того как я загрузил это в DOM-дерево с DOMDocument-> loadXML (), я хотел бы иметь возможность […]

Невозможно разобрать XML-данные с двоеточием (:) из ответа с помощью getNamespaces ()

Я хочу прочитать все, что находится внутри тегов <q:content></q:content> в следующем xml – $xml = '<?xml version="1.0"?> <q:response xmlns:q="http://api-url"> <q:impression> <q:content> <html> <head> <meta name="HandheldFriendly" content="True"> <meta name="viewport" content="width=device-width, user-scalable=no"> <meta http-equiv="cleartype" content="on"> </head> <body style="margin:0px;padding:0px;"> <iframe scrolling="no" src="http://some-url" width="320px" height="50px" style="border:none;"></iframe> </body> </html> </q:content> <q:cpc>0.02</q:cpc> </q:impression> … … some more things … </q:response>'; Я […]

Каковы параметры «$ ns» и «$ is_prefix»?

Метод SimpleXMLElement::__construct() и связанные функции simplexml_load_string() и simplexml_load_file() имеют необязательную пару параметров, связанных с XML Namepspaces: $ns и $is_prefix . Несмотря на то, что я вижу, что они связаны с пространствами имен XML, я задаюсь вопросом, для чего они предназначены и как они работают.

Проблемы с пространством имен PHP

Вечерние парни. Во-первых, я прочитал. Как разобрать XML, содержащий пользовательские пространства имен, используя SimpleXML? , Я разбираю XML-документ из источника, а не пользовательское пространство имен. <?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:moshtix="http://www.moshtix.com.au"> <channel> <item> <link>qweqwe</link> <moshtix:genre>asdasd</moshtix:genre> … Например. Когда я анализирую с помощью SimpleXML, ни один из элементов пространства имен mostix: не отображается или не доступен. […]

Ссылка. Как обрабатывать пространства имен (теги и атрибуты с двоеточием в) в SimpleXML?

Этот вопрос предназначен как ссылка на ответ на особенно распространенный вопрос, который может иметь разные формы: У меня есть документ XML, который содержит несколько пространств имен; как его разобрать с помощью SimpleXML? Мой XML имеет двоеточие (":") в имени тега, как мне получить доступ к нему с помощью SimpleXML? Как получить доступ к атрибутам в […]

Невозможно добавить пространство имен с помощью PHP SimpleXML

Я создаю Atom-канал, когда я попытался добавить xmlns:i как атрибут – $node->addAttribute("xmlns:i","http://www.w3.org/2001/XMLSchema-instance"); Я получил это как результат – i="http://www.w3.org/2001/XMLSchema-instance" Часть "xmlns:" была отключена. мне нужно избежать : -character? Или это любой другой способ добавить это пространство имен?

PHP DOMDocument получает атрибут тега

Привет, у меня есть ответ api в формате xml с рядом элементов, таких как: <item> <title>blah balh</title> <pubDate>Tue, 20 Oct 2009 </pubDate> <media:file date="today" data="example text string"/> </item> Я хочу использовать DOMDocument для получения атрибута «данные» из тега «media: file». Моя попытка ниже не работает: $xmldoc = new DOMDocument(); $xmldoc->load('api response address'); foreach ($xmldoc->getElementsByTagName('item') as […]