Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generowanie namespace w SimpleXML
Forum PHP.pl > Forum > XML, AJAX > XML
CzarnyGsm
Witam,

Mam problem z dodaniem namaspace do parametru rss oraz dla parametru item atrybutu z wartością "k:context="7"".

Otóż chciałbym uzyskąć taki wygląd XML na pomocą biblioteki SimpleXML:
  1. <response>
  2. <status>OK</status>
  3. <rss xmlns:k="adresik.com">
  4. <channel>
  5. <item k:context="7">
  6. <is_read>0</is_read>
  7. <content>tescik</content>
  8. <sender>Piotr Test</sender>
  9. <date>2012-08-09 10:46:07</date>
  10. </item>
  11. </channel>
  12. </rss>
  13. </response>


Gdy próbuje dodać to w ten sposób:
  1. $authorizationXML = new SimpleXMLElement("<response></response>");
  2. ...
  3. $authorizationXML->addChild('status', 'ok');
  4. $rssXML = $authorizationXML->addChild('rss');
  5. $rssXML->addAttribute("xmlns:k", self::NAMESPACE_XMLNS);
  6. ...

Przy parametrze RSS zwracany jest mi nazwa atrybut po przedrostku xmlns:. Dlaczego tak się dzieje, że funkcja wyrzuca to co jest przed dwukropkiem?
  1. <response>
  2. <status>OK</status>
  3. <rss k="adresik.com">
  4. <channel>
  5. <item context="7">
  6. <is_read>0</is_read>
  7. <content>tescik</content>
  8. <sender>Piotr Test</sender>
  9. <date>2012-08-09 10:46:07</date>
  10. </item>
  11. </channel>
  12. </rss>
  13. </response>


Próbowałem dodać to w ten sposób:
  1. $authorizationXML = new SimpleXMLElement("<response></response>");
  2. ...
  3. $authorizationXML->addChild('status', 'ok');
  4. $rssXML = $authorizationXML->addChild('rss');
  5. $rssXML->registerXPathNamespace('k', self::NAMESPACE_XMLNS);
  6. ...

Ale wtedy paramter RSS jest pusty tzn. bez żadnych atrybutów.
  1. ..
  2. <rss>
  3. ..

A co jeśli gdy chcę dodać przy parametrze item atrybut k:context z wartoscia 7 ? W jaki to sposób mogę zrobić? Nie wiem dlaczego ale addAttribute ucina tekst przed wystąpieniem ':'

Z góry dziękuję za pomoc.

Pozdrawiam
Crozin
SimpleXML jako taki nie ma (normalnego) wsparcia dla przestrzeni nazw w XML-u - to bardzo prymitywna biblioteka, nadająca się wyłącznie do podstawowych zadań. Skorzystaj z czegoś bardziej rozbudowanego, np. DOM.
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.