PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   XML (https://www.php-resource.de/forum/xml/)
-   -   simplexml_load_file + : in der Knotenbezeichnung (https://www.php-resource.de/forum/xml/80380-simplexml_load_file-in-der-knotenbezeichnung.html)

Konrado 17-01-2007 10:55

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

wahsaga 17-01-2007 11:03

Re: simplexml_load_file + : in der Knotenbezeichnung
 
Schon mit var_dump/print_r die Struktur des Objektes angeschaut?

Konrado 17-01-2007 11:17

Das Objekt ist in dem Fall mit iw: leer.

wahsaga 17-01-2007 11:25

Ähm ... ich meinte schon dein $xml, und nicht irgendeinen Unterknoten ...

Konrado 17-01-2007 11:27

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

Konrado 17-01-2007 11:32

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.

wahsaga 17-01-2007 11:35

Zitat:

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.

Konrado 17-01-2007 11:56

also die xml selbst ist valide.

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

Konrado 17-01-2007 13:41

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...

wahsaga 17-01-2007 14:17

Bspw. der unter http://www.sitepoint.com/blogs/2005/...nd-namespaces/ beschriebene Weg klingt doch erst mal erfolgversprechend.

Konrado 17-01-2007 15:08

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.


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:18 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG