Nasıl bir XQuery PHP yürütmek için? Bana bir örnek verebilir misiniz?
Teşekkür ederim.
armut paketi: http://www.pecl.php.net/package/Zorba (hata 404 bağlantı)
YENİ (2011): http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery
zorba belgeleri: http://www.zorba-xquery.com/
zorba docs basit bir örnek sağlar:
//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 (Yanılıyorsam, birisi bana bildirin) XQuery'yi destekleyen herhangi bir yerli ya da ortak bir XML ayrıştırıcılarını yoktur. Ancak XPath sorguları işlemek iki güzel standart uzantıları var.
Ben şahsen simplexml
iki iyi olduğunu düşünüyorum. Sadece kullanmak:
$xml = new simplexml($some_xml_string);
$xpath_results = $xml -> Xpath("//a/b");
Ve sonra sonuçları döngü.
Geniş DOM sınıfı yanı XPath sorguları destekler. Tek gerçek avantajı, bildiğim kadarıyla gördüğünüz gibi, DOM kullanarak sonuçları düz büyük XML nesnesinin üzerinden değiştirilebilir veya silinebilir olmasıdır.
İyi şanslar.
http://phpxmlclasses.sourceforge.net/ XQuery Lite sınıfı vardır bu sayfa var:
Xquery Lite 1.0 dil, Bu sınıf DOM uzantısı dayalı ve dosyaları, php dizeleri veya kombinasyonları XML belgeleri için Xquery Lite sorguları yürütmek için izin verir Xquery 1.0 dayalı XML belgeleri sorgulamak için bir dil bir PHP uygulama.
Ben hiç kullanmadım ve nasıl performans bilmiyorum.
Aşağıdaki link yardımcı olmalıdır: 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();
?>
DOMDocument ve DOMXPath ile de doktorunun
$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 />';
}
Eğer bir göz var mıydı http://www.pecl.php.net/package/Zorba?