Intereting Posts
nginx localhost загружает php-файлы в браузере, а не обслуживает их? как мне показать все .jpg картинки в папке, но я хочу только фотографии с сегодняшнего дня Как прочитать RS232 Serial Port в PHP, как эта QBasic Program Запретить изменение скрытого ввода Поиск доступности с MySQL (и PHP)? Magento – добавить пользовательский блок с помощью настраиваемого модуля на странице корзины покупок php Вызов для функции-функции-члена () на null Список разделенных запятыми из массива с «и» перед последним элементом Получить первый ключ в (возможно) ассоциативном массиве? Не получать конкретный результат без брекетов Как отключить английский словарь по умолчанию в Pspell и использовать только пользовательский словарь? Как PHP отслеживает созданные объекты? есть ли способ получить общие значения между двумя массивами в php? Как клонировать массив объектов в PHP? Ошибка скручивания PHP: «Неизвестная ошибка протокола SSL в связи с …»

XPath оценивает запрос и извлекает значение

У меня есть этот код

$XMLTranslationObject = new DOMDocument(); $XMLTranslationObject->load("../xdata/xml/translation/en-US/profile.xml"); $Xpath = new DOMXpath($XMLTranslationObject); $Result = $Xpath->evaluate("Field[@Name = 'AttachedFiles']")->nodeValue; echo $Result; 

и xml

 <?xml version="1.0" encoding="ISO-8859-1"?> <Translation language="en-US"> <!-- Basic Begin --> <Field Name="SiteName">Brainfavor</Field> <Field Name="Error">Error</Field> <!-- Basic End --> <!-- Header Begin --> <Field Name="Name">Name</Field> <Field Name="WorkingAt">Working at</Field> <Field Name="Phone">Phone</Field> 

ведьма дает мне следующую ошибку

Примечание. Неопределенное свойство: DOMNodeList :: $ nodeValue в C: \ xampp \ htdocs \ brainbook \ profile \ loadmore.php в строке 30

Все, что я хочу, это получить значение строки, где имя поля AttachedFiles , просто запустить простой запрос Xpath и получить результат. Использование XSLT легко

 <xsl:value-of select="$TranslationProfile/Field[@Name = 'AttachedFiles']"/> 

но раньше я не использовал PHP Xpath.

Solutions Collecting From Web of "XPath оценивает запрос и извлекает значение"

Правильная формулировка

 $Xpath->evaluate("string(Field[@Name = 'AttachedFiles'])"); 

Это работает, потому что string функция преобразует набор узлов (который в этом случае будет состоять всего из одного узла) до значения первого узла в наборе.

Предупреждение: это означает, что если есть несколько элементов, которые соответствуют запросу, только первое (в порядке документа) вернет его значение.