phpbar.de logo

Mailinglisten-Archive

[php] XML-Datei durchgehen, Nodes anhand Parameter löschen

[php] XML-Datei durchgehen, Nodes anhand Parameter löschen

Peter Bieling net2 at media-palette.de
Don Dez 28 14:19:29 CET 2006


Hallo Albin,

Albin Blaschka wrote:

>     <li acl = "1"><a href = "script1.php">Ausgabe</a>
>         <ul acl = "1">
>             <li acl = "1"><a href = "script2.php">Persönliche Liste</a></li>
>             <li acl = "2"><a href = "script3.php">Gesamtliste</a></li>
>             <li acl = "2"><a href = "script4.php">Statistik</a></li>
>         </ul>
>     </li>

Verstehe ich das richtig, dass für User 2, dieser gesamte Ast "Ausgab" 
wegfällt, während User 1 fast alles zu sehen bekommt, außer 
"Gesamtliste" und "Statistik"? (Die bekommt aber auch User 2 nicht zu 
sehen, weil ja schon das Elternelement gesperrt ist.)

> Ich mach's auch gern andersherum, streiche die Knoten, die nicht 
> hineinpassen...hatte aber auch in dieser Richtung keinen Lichtblitz...

Wenn ich Dich richtig verstanden habe, und es nicht unbedingt mit 
DOM-Funktionen realisiert werden soll, könnte es so gehen:
==========================
<?php
require_once("xml-line-0.4.4.3.php");
$xml = new xml_line("liste.xml", "xml");
//alle Elemente rauswerfen, bei denen acl="2" ist:

$xml->delete_element(0, "", "", array('acl' => 2));
echo "<pre>";
$xml->xml_stream('lat1', 'lat1');
echo htmlentities($xml->get_output());
echo "</pre>";
?>

Ausgabe:
<?xml version="1.0" encoding="ISO-8859-1"?>
<ul id="navigation" class="horizontal">
     <li acl="1"><a href="edit.php">Daten pflegen</a>
         <ul acl="1">
         <li acl="1"><a href="edit.php?flag=input">Werk eingeben</a></li>
         <li acl="1"><a href="edit.php?flag=edit">Werk editieren</a></li>
         </ul>
     </li>

     <li acl="1"><a href="script1.php">Ausgabe</a>
         <ul acl="1">
             <li acl="1"><a href="script2.php">Persönliche Liste</a></li>


         </ul>
     </li>
</ul>
========================
Bei Bedarf packe ich das Beispiel mal in eine Zip-Datei und stelle es 
zum Testen zur Verfügung.

Viele Grüße

Peter
-- 
http://www.media-palette.de/tools/xml-line/


php::bar PHP Wiki   -   Listenarchive