PHP DOM XML - Mehrere Namespaceattribute erstellen?

7

Ich arbeite an etwas PHP, um XML aus einer Datenbank mit der DOM-Erweiterung zu erstellen.

Grundsätzlich muss ich einen Namensraum erstellen und ihm 3 Attribute hinzufügen:

%Vor%

Der vollständige Code, den ich geschrieben habe, ist unten:

%Vor%

Aber wenn ich das obige ausführe, bekomme ich diesen Fehler:

  

Fataler Fehler: Nicht abgefangene Ausnahme   'DOMException' mit Nachricht 'Namespace   Fehler in   xml.php: 21   Stapelverfolgung: # 0   xml.php (21):   DOMElement- & gt; setAttributeNS (' Ссылка ...', 'xsi: schemaLocat ...',   'uri: xxx ...') # 1 {main} geworfen   im   xml.php   in Zeile 21

Zeile 21 ist die zweite Zeile 'setAttributeNS'.

Kann jemand sehen, wo ich falsch liege?

    
Sjwdavies 10.02.2010, 13:05
quelle

3 Antworten

15

schemaLocation wird nicht im Namespace http://www.w3.org/2000/xmlns/ , sondern in http://www.w3.org/2001/XMLSchema-instance

deklariert %Vor%

druckt

%Vor%     
VolkerK 10.02.2010, 13:26
quelle
3

Ich habe es beim ersten Mal nicht ganz verstanden, also poste ich meine Antwort genauer. Vielleicht findet jemand das hilfreich.

%Vor%

Diese Mail-Archiv-Nachricht war sehr hilfreich: Ссылка .

    
hrvoj3e 04.06.2013 06:19
quelle
2

Ersetzen Sie Zeile 21 durch

%Vor%

xsi:schemaLocation ist nicht in Ссылка oder Ihrem Namensraum definiert, sondern in xsi . Sie müssen also den (vollständigen) xsi namespace uri als ersten Parameter verwenden.

und: Sie müssen setAttributeNS() nicht zweimal aufrufen: Die obige Zeile generiert die Attribute xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" und xsi:schemaLocation="http://xxx http://xxx/xxx.xsd" .

    
ax. 10.02.2010 13:26
quelle

Tags und Links