phpbar.de logo

Mailinglisten-Archive

[php] PHP5: DOM & die attribute [nachruf]

[php] PHP5: DOM & die attribute [nachruf]

Dario Nuevo php at xbe.ch
Don Sep 30 09:42:01 CEST 2004


hat denn wirklich niemand einen tipp betreffend meinem problem dass ich 
gestern gepostet habe? ich weiss, wenn niemand schreibt, dann wirds wohl 
niemand wissen - aber das kann ich mir hier einfach nicht vorstellen, 
deshalb hak' ich nochmal nach... ;-)

Dario Nuevo wrote:

> hi listies..
>
> lange ist's her, mein letztes schreiben ;) nun gut..
>
> im moment entwickle ich ein tool mit php5 (hab apache 2.? mit 
> php5.0.1) und benutze die dom extension zum xml files bearbeiten (dom 
> erschien mir doch wesentlich komfortabler als simplexml, da ich 
> erweiterte funktionen benötige)
>
> nun suche ich eine möglichkeit, von einem gegebenen domelement ALLE 
> bestehenden attribute zu fetchen..nur finde ich da irgendwie keine 
> gure möglichkeit, wer weiss da rat?
> listies haben gern code...
>
> mein xml-file (nur als beispiel; nicht das ganze): (sachen in [..] 
> sind platzhalter, nicht wirklich im xml)
> -----------------
> <?xml version="1.0"?>
> [DOCTYPE]
>
> <xdb>
>    <xImport>
>        <xHash>b6b8b34a459d7eb812d21d31ae8e8849</xHash>
>        <xPropId>3</xPropId>
>        <xGenerated>1096281554</xGenerated>
>    </xImport>
>    <xProperties>
>        <xProperty parent="0" id="3">Adresse</xProperty>
>        <xProperty parent="3" id="9">Adr. Art</xProperty>
>        <xProperty parent="3" id="10">Adr. Priorität</xProperty>
>        <xProperty parent="3" id="11">Adresszeile1</xProperty>
>        <xProperty parent="3" id="12">Adresszeile2</xProperty>
>        <xProperty parent="3" id="13">PLZ</xProperty>
>        <xProperty parent="3" id="14">Ort</xProperty>
>        <xProperty parent="3" id="15">Land</xProperty>
>    </xProperties>
> </xdb>
>
> ok, nun bin ich am schreiben einer kleinen dom-wrapper-klasse und 
> hätte dort gerne eine funktion get_attributes($tagname), welche mir 
> von allen tags $tagname ALLE attribute in einem array zurückgibt..
>
> folgende klasse hab ich bis jetzt (auch hier, überflüssiges is draussen)
>
> ---------
> class xdbXMLParser {
>      var $xml; // xml object
>      function xdbXMLParser($filename) {
>        $this->xml = DOMDocument::load($filename);
>        $this->filename = $filename;
>              if ($this->xml) {
>            $val = $this->xml->validate();
>            if(!$val) die("Could not validate XML file!");
>        } else {
>               die("Error loading XML file");
>        }
>        $this->get_elements_by_tagname("xProperty");
>        die;
>    }
>
>    function get_elements_by_tagname($tagname) {
>        $el = $this->xml->getElementsByTagName($tagname);
>           if(count($el)<1) {
>               return false;
>           }else{
>               foreach($el as $val) {
>                   $text = 
> $this->str_normalize($val->firstChild->nodeValue);
>                   $atts = $val->Child_Nodes->nodeValue;
>                   var_dump($atts);
>                                }
>           }
>    }
>
>    function get_attributes($val) {
>        $tmp = array();
>        foreach($val->attributes() as $key=>$val) $tmp[$key] = $val;
>        return $tmp;
>    }
>   }
> ---------------
>
> tja, so sieht meine klasse bisher aus - get_elements_by_tagname() 
> funktioniert wunderprächtig.. aber eben get_attributes() überhaupt 
> nicht! anscheinend haben die DOMElement-objekte keine 
> attributes()-methode - steht dort nur drin, weil ich es irgendwo 
> gelesen hab als test... ;-)
>
> also, kann mir einer sagen, wie ich per dom alle attribute eines 
> DOMElements bekommen kann?
> bei allen dom-funktionen, die mit attributen arbeiten, muss man immer 
> ein attributname mitgeben - darum kann ich (soweit ich eben weiss) 
> davon keine verwenden..
>
> wer kann mir helfen? ;-)
>
> gruss
> dario nuevo
>
>


php::bar PHP Wiki   -   Listenarchive