Respuesta
¿Echa un vistazo a http://www.pecl.php.net/package/Zorba?
pera: http://www.pecl.php.net/package/Zorba (enlace error 404)
NEW (2011): documentación http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery
zorba: http://www.zorba-xquery.com/
docs zorba proporcionan un ejemplo simple:
//Include for the Object-Oriented API
require ‘zorba_api.php’;
//Initialization of Zorba store
$store = InMemoryStore::getInstance();
//Initialization of Zorba
$zorba = Zorba::getInstance($store);
$xquery = <<< EOT
let $message := ‘Hello World!’
return
<results>
<message>{$message}</message>
</results>
EOT;
//Compile the query
$lQuery = $zorba->compileQuery($xquery);
//Run the query…
echo $lQuery->execute();
//…and destroy it
$lQuery->destroy();
//Shutdown of Zorba
$zorba->shutdown();
//Shutdown of Zorba store
InMemoryStore::shutdown($store);
PHP no tiene ningún analizador XML nativo o común que sea compatible con XQuery (si estoy equivocado, alguien me lo dirá). Sin embargo, tiene dos extensiones bastante estándar que manejan consultas XPath.
Personalmente creo que simplexml
es el mejor de los dos. Simplemente usaría:
$xml = new simplexml($some_xml_string);
$xpath_results = $xml -> Xpath("//a/b");
Y luego recorra los resultados.
La extensa clase DOM admite consultas de Xpath también. La única ventaja real, hasta donde yo lo veo, para usar DOM es que los resultados se pueden modificar o eliminar directamente del objeto XML más grande.
Buena suerte.
XPath no es lo mismo que XQuery. – VolkerK
Lo sé, ¿verdad? Probablemente sea por eso que lo primero que dije fue que PHP no tiene soporte nativo para XQUERY. Supongo que la próxima vez, no debería agregar soluciones alternativas útiles. – Anthony
Todavía no creo que para una pregunta tan genérica como esta, xpath sea una alternativa viable para xquery. Al menos requiere algunas grandes suposiciones. Pero de todos modos ... – VolkerK
su también Posible con DOMDocument y DOMXPath
$doc = new DOMDocument();
$doc->load('http://www.example.com/some.xml');
$xpd = new DOMXPath($doc);
false&&$node = new DOMElement();//this is for my IDE to have intellysense
$result = $xpd->query('//a/b');
foreach($result as $node){
echo $node->nodeName.'<br />';
}
Hay esta página en http://phpxmlclasses.sourceforge.net/ que tiene una clase de XQuery Lite:
Una aplicación PHP de el lenguaje Xquery Lite 1.0, un lenguaje para consultar documentos XML basados en Xquery 1.0 Esta clase se basa en la extensión DOM y permite ejecutar consultas de Xquery Lite para documentos XML en archivos, cadenas php o combinaciones.
Nunca lo he usado y no sé cómo funciona.
El siguiente enlace debe ser útil: http://dl.dropbox.com/u/1487285/php/php.html
<?php
require_once 'Zorba/XQueryProcessor.php';
$xquery = new XQueryProcessor();
$query = <<<'XQ'
declare variable $world external;
<h1>Hello {$world}</h1>
XQ;
$xquery->importQuery($query);
$xquery->setVariable('world', 'World!');
echo $xquery->execute();
?>
Para los escenarios de alojamiento compartido, que sugieren que usar algo como 28msec (http://www.28msec.com), que le permite construir los servicios REST basadas encima del procesador Zorba XQuery. Desde PHP puedes conectarte a 28msec a través de REST.
Use BaseX. ¡Es estable, escalable y rápido! (pero se necesita un servidor para ejecutar)
include("BaseXClient.php");
$session = new Session("localhost", 1984, "admin", "admin");
print $session->execute("xquery 1 to 10");
$session->close();
- 1. xQuery LIKE-operator?
- 2. XQuery: ¿crear un nuevo elemento con un nombre de pila?
- 3. Biblioteca de XQuery en Python
- 4. Cómo descodificar XML escapado con xQuery
- 5. Pruebas unitarias XQuery
- 6. ¿Cómo puedo formatear un decimal en xquery?
- 7. Debug XQuery Program
- 8. cómo ejecutar un archivo .sh desde php?
- 9. ¿Cómo ejecutar un script PHP grande?
- 10. php ejecutar un proceso en segundo plano
- 11. Ejecutar Perl en PHP
- 12. Ejecutar un script PHP desde otro script PHP
- 13. ¿Herramienta simple para aprender XQuery?
- 14. Ejecutar archivo PHP de otro php
- 15. Ejecutar un comando coloreado desde un script php
- 16. Cómo usar XQuery en C#
- 17. Obtiene el elemento más repetido en una secuencia con XQuery
- 18. ¿Cómo puedo ejecutar un php sin un servidor web?
- 19. Cómo ejecutar un comando de shell desde un script php
- 20. Cómo ejecutar texto como PHP
- 21. XQuery todos los archivos en un directorio específico?
- 22. Ejecutar comandos Bash desde PHP
- 23. Cómo agrupar una aplicación php con 1 clic ejecutar/instalar
- 24. ejecutar el programa C++ con la secuencia de comandos php
- 25. Shell correr/ejecutar script PHP con los parámetros
- 26. Cómo ejecutar abc.exe usando php
- 27. ¿Cómo ejecutar el script mysql con variables usando PHP :: PDO?
- 28. ¿Usando XQuery en Linq a SQL?
- 29. ¿Cómo ejecutar un script PHP continuamente en el host web?
- 30. PHP ejecutar un script cuando caduque una sesión
Amigo! ¿Compilando solo para ejecutar una consulta simple? Suena como ciencia de cohetes aquí ... ¿nada más simple? – abernier
[Ese paquete ya no existe en PECL] (http://www.pecl.php.net/packages.php?catpid=22&catname=XML) – Gordon