downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

DOM Funciones> <DOMXPath::registerNamespace
[edit] Last updated: Fri, 17 May 2013

view this page in

DOMXPath::registerPhpFunctions

(PHP 5 >= 5.3.0)

DOMXPath::registerPhpFunctionsRegistra funciones de PHP como funciones XPath

Descripción

public void DOMXPath::registerPhpFunctions ([ mixed $restrict ] )

Este método habilita la capacidad de usar funciones de PHP dentro de expresiones XPath.

Parámetros

restrict

Use este parámetro para permitir solamente que ciertas funciones sean llamadas desde XPath.

Este parámetro puede ser un string (un nombre de función) o un array de nombres de funciones.

Valores devueltos

No devuelve ningún valor.

Ejemplos

Los siguientes ejemplos usan book.xml que contiene lo siguiente:

Ejemplo #1 book.xml

<?xml version="1.0" encoding="UTF-8"?>
<books>
 <book>
  <title>PHP Basics</title>
  <author>Jim Smith</author>
  <author>Jane Smith</author>
 </book>
 <book>
  <title>PHP Secrets</title>
  <author>Jenny Smythe</author>
 </book>
 <book>
  <title>XML basics</title>
  <author>Joe Black</author>
 </book>
</books>

Ejemplo #2 DOMXPath::registerPHPFunctions() con php:functionString

<?php
$doc 
= new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Registrar el espacio de nombres php: namespace (requerido)
$xpath->registerNamespace("php""http://php.net/xpath");

// Registrar funciones de PHP (sin restricciones)
$xpath->registerPHPFunctions();

// Llamar a la función substr en el título del libro
$nodos $xpath->query('//book[php:functionString("substr", title, 0, 3) = "PHP"]');

echo 
"Se encontró {$nodos->length} libros que empiezan con 'PHP':\n";
foreach (
$nodos as $nodo) {
    
$title  $nodo->getElementsByTagName("title")->item(0)->nodeValue;
    
$author $nodo->getElementsByTagName("author")->item(0)->nodeValue;
    echo 
"$title por $author\n";
}

?>

El resultado del ejemplo sería algo similar a:

Se encontró 2 libros que empiezan con 'PHP':
PHP Basics por Jim Smith
PHP Secrets por Jenny Smythe

Ejemplo #3 DOMXPath::registerPHPFunctions() con php:function

<?php
$doc 
= new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Registrar el espacio de nombres php: namespace (requerido)
$xpath->registerNamespace("php""http://php.net/xpath");

// Registrar funciones de PHP (sólo has_multiple)
$xpath->registerPHPFunctions("has_multiple");
 
function 
has_multiple($nodos) {
    
// Return true if more than one author
    
return count($nodos) > 1;
}
// Filtrar libros con múltiples autores
$libros $xpath->query('//book[php:function("has_multiple", author)]');

echo 
"Libros con múltiples autores:\n";
foreach (
$libros as $libro) {
    echo 
$libro->getElementsByTagName("title")->item(0)->nodeValue "\n";
}

?>

El resultado del ejemplo sería algo similar a:

Libros con múltiples autores:
PHP Basics

Ver también



add a note add a note User Contributed Notes DOMXPath::registerPhpFunctions - [0 notes]
There are no user contributed notes for this page.

 
show source | credits | sitemap | contact | advertising | mirror sites