Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [PHP][XML] Atrybuty & CDATA

Napisany przez: Puchatek 7.02.2020, 18:31:32

Witajcie,
pracuję nad przeróbką XMLi z jednego formatu na format Ceneo - https://www.ceneo.pl/poradniki/Instrukcja-tworzenia-pliku-XML#struktura-pliku-xml
Wymagany jest znacznik CDATA, dlatego użyłem do niego funkcji:

  1. class SimpleXMLExtend extends SimpleXMLElement
  2. {
  3. public function addCData($nodename,$cdata_text)
  4. {
  5. $node = $this->addChild($nodename); //Added a nodename to create inside the function
  6. $node = dom_import_simplexml($node);
  7. $no = $node->ownerDocument;
  8. $node->appendChild($no->createCDATASection($cdata_text));
  9. }
  10. }


Wszystko działa pięknie w kategoriach, nazwie produktu czy opisie.
Problem pojawia się jednak przy dodawaniu atrybutów w <attrs>.
Przykładowo:
  1. $a = $attrs->addCData('a', $item->Brand);
  2. $a->addAttribute('name', 'Producent');


Podczas generowaniu pliku otrzymuję błąd:
Fatal error: Call to a member function addAttribute() on null

Rozumiem, że po prostu brakuje mi funkcji dodawania atrybutu w nowo powstałej funkcji addCData.
Niestety nie mam jeszcze opanowanego ich budowania, dlatego proszę o pomoc. Funkcję addCData udało mi się najzwyczajniej znaleźć w internecie.

Napisany przez: nospor 10.02.2020, 15:10:12

Skoro pracujesz na wyniku addCData() to nie sadzisz ze addCData() powinno na koncu cos zwracac? I aby to cos zwrocilo, nie sadzisz ze powinnno byc na koncu addCData:

return tocos;

?

Napisany przez: Puchatek 11.02.2020, 09:40:09

Dziękuję za nakierowanie. Problem rozwiązany.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)