wDOM::executeXPath

Führt eine xPath-Abfrage auf ein DOM-Objekt aus

Funktionsaufruf

DomNodeList executeXPath(DOMDocument dom, String xPathExpression)

Parameter

dom
DOM-Objekt
xPathExpression
XPath-Abfrage
options
Erweiterte Optionen
context
Kontextknoten, von dem aus die Abfrage gestellt wird
namespacePrefix
Namensraum-Prefix
namespaceURI
Namensraum-URI

Beispiel 1: XML-Dokument auslesen und ausgeben

Liest die Knoten eines XML-Baumes aus (z.B. getEntries.php)

require_once $_SERVER['DOCUMENT_ROOT'].'/weblication/grid.php';

$userType = wUserCur::getType();

if(
$userType != 'admin' && $userType != 'standard'){
exit;
}

$domObject = wDOM::parseFile('/[PROJEKT]/wGlobal/content/entries/locomotion.wEntries.php');
$resultNodes = wDOM::executeXPath($domObject, "//entry");

$result = '<entries>'."\n";

foreach(
$resultNodes as $resultNode){
$result .= ' <entry value="'.$resultNode->getAttribute('value').'">'.$resultNode->textContent.'</entry>'."\n";
}
$result .= '</entries>'."\n";

print
$result;

XML-Datei locomotion.wEntries.php zu getEntries.php Script

<?php $version="1.0"; $encoding="UTF-8"; ?>
<?php exit; ?>
<locomotion>
  <entries>
    <entry value="car">Auto</entry>
    <entry value="train">Bahn</entry>
    <entry value="airplane">Flugzeug</entry>
  </entries>
</locomotion>

Beispiel 2: XML-Dokument auslesen und ausgeben

Liest den XML-Baum einer Kategorien-Datei aus

//Ermittelt alle Kategorienknoten

$resultNodes = wDOM::executeXPath(wDOM::parseFile($_SERVER['DOCUMENT_ROOT'].'/[IHR-LAYOUT-PROJEKT]/wGlobal/content/categories/standard.wCategories.php'), '//category');

print
'<div class="listCategories">';

foreach(
$resultNodes as $resultNode){
//Falls es sich um eine Unterkategorie handelt, wird diese eingerueckt
if($resultNode->parentNode->tagName == 'category'){
//print " ".$resultNode->getAttribute('text')." (".$resultNode->getAttribute('id').")<br />";
// die Datei document-category.php stellt eine Inhaltsseite mit Liste dar, welche die URL-Parameter berücksichtigt
print ' <a href="/[PROJEKT]/documents-category.php?categories[]='.$resultNode->getAttribute('id').'" class="categories" style="margin-left:20px">'.$resultNode->getAttribute('text')."</a><br />";
}
else{
//print $resultNode->getAttribute('text')." (".$resultNode->getAttribute('id').")<br />";
// die Datei document-category.php stellt eine Inhaltsseite mit Liste dar, welche die URL-Parameter berücksichtigt
print '<a href="/[PROJEKT]/documents-category.php?categories[]='.$resultNode->getAttribute('id').'" class="categories">'.$resultNode->getAttribute('text')."</a><br />";
}
}
print
'</div>';

Beispiel 3: Liest Werte aus dem wd:meta Bereich aus (Namensraum muss definiert werden)

$titleNode = wDOM::executeXPath($domObject, '//wd:meta/wd:title/text()', array('namespacePrefix' => 'wd', 'namespaceURI' => 'http://weblication.de/5.0/wd'))->item(0);

print
$titleNode->wholeText;

Hinweis
Beim Einsatz von Framework-Funktionen in eigenen Skripten beachten Sie bitte den Artikel "So verwenden Sie das PHP-Framework in eigenen Scripten".
Wenn Sie eine Funktion innerhalb einer Weblication® Seite z.B. über das PHP-Quelltext Element oder in einem XSL-Template über wsl:php einbinden, muss das Framework über die grid.php nicht mehr referenziert werden.