Odpowiedz
Czy spojrzałeś na http://www.pecl.php.net/package/Zorba?
gruszka pakiet: http://www.pecl.php.net/package/Zorba (błąd 404 Link)
NEW (2011): dokumentacja http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery
zorba: http://www.zorba-xquery.com/
Zorba docs zapewniają prosty przykład:
//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 nie ma żadnych rodzimych lub popularnych parserów XML obsługujących XQuery (jeśli się mylę, ktoś mi dał znać). Ma jednak dwa dość standardowe rozszerzenia obsługujące zapytania XPath.
Osobiście uważam, że simplexml
jest lepszy z dwóch. Po prostu użyjesz:
$xml = new simplexml($some_xml_string);
$xpath_results = $xml -> Xpath("//a/b");
A następnie przejrzyj wyniki.
Rozbudowana klasa DOM obsługuje również zapytania Xpath. Jedyną prawdziwą zaletą, jeśli chodzi o to, że korzystam z DOM, jest to, że wyniki mogą być modyfikowane lub usuwane bezpośrednio z większego obiektu XML.
Powodzenia.
XPath to nie to samo co XQuery. – VolkerK
Wiem, prawda? Pewnie dlatego pierwszą rzeczą, którą powiedziałem, było to, że PHP nie ma natywnej obsługi XQUERY. Przypuszczam, że następnym razem nie powinienem dodawać pomocnych alternatywnych rozwiązań. – Anthony
Nadal nie sądzę, że na pytanie tak ogólne, jak ten jeden xpath jest realną alternatywą dla xquery. Przynajmniej wymaga to pewnych dużych założeń. Ale w każdym razie .... – VolkerK
jej również posible z DOMDocument i 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 />';
}
Jest to strona na http://phpxmlclasses.sourceforge.net/ że ma klasę XQuery lite:
Implementacja PHP język Xquery Lite 1.0, język służący do odpytywania dokumentów XML on Xquery 1.0 Ta klasa jest oparta na rozszerzeniu DOM i pozwala na wykonywanie kwerend Xquery Lite dla dokumentów XML w plikach, łańcuchach lub kombinacjach PHP.
Nigdy go nie używałem i nie wiem, jak to działa.
Poniższy link powinien być przydatny: 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();
?>
Dla współdzielonych scenariuszy hostingu, proponuję użyć czegoś podobnego 28msec (http://www.28msec.com), która pozwala budować relaksującego usług opartych na górze procesora Zorba XQuery. Z PHP można połączyć się z 28 ms przez REST.
Użyj BaseX. Jest stabilny, skalowalny i szybki! (ale trzeba uruchomić serwer)
include("BaseXClient.php");
$session = new Session("localhost", 1984, "admin", "admin");
print $session->execute("xquery 1 to 10");
$session->close();
- 1. PHP - Wykonaj kod z terminala, serwer ubuntu
- 2. Wykonaj skrypt php przed każdym skryptem php?
- 3. Wykonaj kolorowane polecenie ze skryptu php.
- 4. Wykonaj skrypt php z bash, przypisać wyjście do zmiennej bash
- 5. Biblioteka XQuery pod Pythonem
- 6. xQuery LIKE-operator?
- 7. Xquery różne wartości
- 8. Program debugowania XQuery
- 9. Aktualizacja licznika w XQuery
- 10. Jak rozszyfrować kod XML z XQuery?
- 11. Jak powrócić pierwszy wynik z XQuery
- 12. XQuery podczas korzystania z różnych wartości współczynnika()
- 13. SQL Server XQuery z obszaru nazw Domyślnie
- 14. Wykonaj miniaturkę z pliku quicktime (film)
- 15. Wykonaj podręczne menu z marginesem
- 16. Wykonaj kwerendę sql z Elixir
- 17. Wykonaj zadanie Ant z Mavenem
- 18. Wykonaj pusty commit z mercurial
- 19. Wykonaj Pitest z wiersza poleceń
- 20. Wykonaj polecenie CMD z kodu
- 21. Kontroler MVC. Wykonaj z obszarami
- 22. Wykonaj zewnętrzne polecenie
- 23. Wykonaj plik PHP i zwraca wynik jako ciąg
- 24. Wykonaj funkcję z .js z J2V8
- 25. Umieść każdy wynik XQuery w nowej linii
- 26. Pobierz najbardziej powtarzalny element w sekwencji z XQuery
- 27. Jak poprawnie używać QXMLQuery? (Qt XQuery/XPath)
- 28. XQuery: Jak prawidłowo dodać, w pętli for
- 29. w jaki sposób XQUERY jest rzeczywiście używany?
- 30. Skrobanie ekranu: wyrażenia regularne lub wyrażenia XQuery?
Dude! Kompilowanie tylko do wykonania prostego zapytania ?! Brzmi jak nauka rakietowa ... nic prostszego? – abernier
[Ten pakiet już nie istnieje w PECL] (http://www.pecl.php.net/packages.php?catpid=22&catname=XML) – Gordon