Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem przy wygenerowaniu XML'a
Forum PHP.pl > Forum > PHP
masterix
Witam,

Potrzebuję za pomocą DOMDocument wygenerować takie coś:
  1. <urlset xmlns="adres1"
  2.        xmlns:geo="adres2">
No i niestety nie udaje mi się to. Mógłby ktoś podpowiedzieć jak zdefiniować tą przestrzeń nazw? Udało mi się takie coś:
  1. <?xml version="1.0" encoding="iso-8859-2"?>
  2. <urlset xmlns="adres1"/>
za pomocą kodu:
  1. <?php
  2. $dom = new DOMDocument( '1.0', 'iso-8859-2' );
  3. $urlset = $dom->createElement( 'urlset' );
  4. $urlset->setAttribute( 'xmlns', 'adres1' );
  5. $dom->appendChild( $urlset );
  6. $output = $dom->saveXML();
  7. ?>


pzdr.
TrevorGryffits
Osobiście nigdy niem korzystałem z przestrzeni nazw, ale spróbuj może createAttributeNS" title="Zobacz w manualu PHP" target="_manual, registerNamespace" title="Zobacz w manualu PHP" target="_manual? Ogólnie poszukaj na stronie DOM w manualu "namespace". Mam nadzieję, że trafiłem;)
masterix
Próbowałem jednak nic mi nie wyszło - albo inaczej, wychodziły cuda niewidy smile.gif
No i pierwszym miejscem jakie odwiedziłem to właśnie php.net/dom
pinochet
Pozwalam sobie odgrzać, jako iż ja tez probowalem rozwiazac ten problem, a szukając w sieci chyba z 3 razy na ten wątek trafiłem. Wklejam dla potomnych a także byłbym wdzięczny jeżeli ktoś by to poprawił bo to takie rozwiązanie jest sprzeczne z moim poczuciem estetyki :]
  1. <?php
  2.  $dom = new DOMDocument('1.0', 'UTF-8');
  3.  $tmp = $dom->CreateElement("form");
  4.  $dom->appendChild($tmp); // aby skorzysac z createAtributeNS root musi juz istniec
  5.  
  6.            $elm = $dom->createAttributeNs('http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation');
  7.                      $txt = $dom->createTextNode('http://jjroman.net note.xsd');
  8.           $elm->appendChild($txt);
  9.  
  10. $tmp->appendChild($elm);
  11.  
  12.  
  13.           $elm = $dom->createAttribute('xmlns');
  14.                      $txt = $dom->createTextNode('http://jjroman.net');
  15.           $elm->appendChild($txt);
  16.  
  17. $tmp->appendChild($elm);
  18.  
  19.  
  20. echo $dom->saveXML();
  21. ?>

wyjscie będzie takie:
  1.    <?xml version="1.0" encoding="UTF-8"?>
  2. <form
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xmlns="http://jjroman.net"
  5.     xsi:schemaLocation="http://jjroman.net note.xsd"
  6. />
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.