Mailinglisten-Archive |
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