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