Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Generowanie namespace w SimpleXML
CzarnyGsm
post 9.08.2012, 10:34:44
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 2
Dołączył: 16.04.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Crozin
post 9.08.2012, 10:39:11
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 09:18