simplexml_load_file + : in der Knotenbezeichnung

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • simplexml_load_file + : in der Knotenbezeichnung

    Hallo zusammen,

    ich lade mit simplexml_load_file eine xml-Datei und verarbeite diese entsprechend.

    Auszug aus der XML:

    PHP Code:
    <iw:ausstattung>
       <
    iw:kueche BK="true"/>
    </
    iw:ausstattung>
    <
    iw:zustand_angaben>
       <
    iw:baujahr>'91 san. </iw:baujahr>
    </iw:zustand_angaben> 
    Auszug aus PHP (nur beispielhaft):
    PHP Code:
    $xml simplexml_load_file($key);
    $nodeList $xml->xpath('//iw:xyzabezd');
    foreach (
    $nodeList as $node) {
        
    $node-> iw:zuobjektkategorie -> iw:kueche;

    Das auslesen über iw: ist in dieser Schreibweise nicht möglich.
    Wie kann ich diese Knoten auslesen? Oder wie muss ich das auslesen anpassen?

    Ohne iw: wäre das ganze ja kein Problem.

    Viele Grüße
    Konrado

  • #2
    Re: simplexml_load_file + : in der Knotenbezeichnung

    Schon mit var_dump/print_r die Struktur des Objektes angeschaut?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Comment


    • #3
      Das Objekt ist in dem Fall mit iw: leer.

      Comment


      • #4
        Ähm ... ich meinte schon dein $xml, und nicht irgendeinen Unterknoten ...
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Comment


        • #5
          :-) genau, das ist ebenfalls leer. Das simplexml_load_file hat schon ein Problem mit dem iw: .

          Comment


          • #6
            Anbei noch der komplette Kopf der XML-Datei:

            PHP Code:
            <?xml version="1.0" encoding="ISO-8859-1"?>
            <iw:openimmo xsi:schemaLocation="http://www.openimmo.de openimmo.xsd" xmlns:iw="http://www.openimmo.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <iw:uebertragung art="OFFLINE" umfang="TEIL" version="1.1" sendersoftware="..."/>
            <iw:anbieter>
              <iw:anbieternr></iw:anbieternr>
              <iw:firma>Firma</iw:firma>
              <iw:openimmo_anid></iw:openimmo_anid>
              <iw:immobilie>
            usw.

            Comment


            • #7
              Das simplexml_load_file hat schon ein Problem mit dem iw: .
              Na dann würde ich sagen, validiere dein XML doch erst mal.

              Und bei SimpleXML kann man doch auch Fehler abfragen, über die libxml-Funktionen.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Comment


              • #8
                also die xml selbst ist valide.

                das mit dem fehler abfangen probiere ich gerade aus...

                Comment


                • #9
                  so weit ich das jetzt rausgefunden habe, kann simplexml nicht wirklich xml-dateien mit namespaces lesen....eine Lösung dafür wäre wohl registerXPathNamespace, funktioniert aber noch nicht so wie beschrieben...

                  Comment


                  • #10
                    Bspw. der unter http://www.sitepoint.com/blogs/2005/...nd-namespaces/ beschriebene Weg klingt doch erst mal erfolgversprechend.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Comment


                    • #11
                      danke, genau den hatte ich auch schon ausgeteste, leider steht mir auf dem produktiven Server nur php 5.0.6 momentan zur Verfügung.

                      Ich löse das ganze jetzt aber mit einer externen xml Klasse von www.phpxml.org. Das funktioniert wunderbar auch mit Namespaces.

                      Danke für die Hilfe.

                      Comment

                      Working...
                      X