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:
<response> <status>OK</status> <rss xmlns:k="adresik.com"> <channel> <item k:context="7"> <is_read>0</is_read> <content>tescik</content> <sender>Piotr Test</sender> <date>2012-08-09 10:46:07</date> </item> </channel> </rss> </response>
Gdy próbuje dodać to w ten sposób:
$authorizationXML = new SimpleXMLElement("<response></response>"); ... $authorizationXML->addChild('status', 'ok'); $rssXML = $authorizationXML->addChild('rss'); $rssXML->addAttribute("xmlns:k", self::NAMESPACE_XMLNS); ...
Przy parametrze RSS zwracany jest mi nazwa atrybut po przedrostku xmlns:. Dlaczego tak się dzieje, że funkcja wyrzuca to co jest przed dwukropkiem?
<response> <status>OK</status> <rss k="adresik.com"> <channel> <item context="7"> <is_read>0</is_read> <content>tescik</content> <sender>Piotr Test</sender> <date>2012-08-09 10:46:07</date> </item> </channel> </rss> </response>
Próbowałem dodać to w ten sposób:
$authorizationXML = new SimpleXMLElement("<response></response>"); ... $authorizationXML->addChild('status', 'ok'); $rssXML = $authorizationXML->addChild('rss'); $rssXML->registerXPathNamespace('k', self::NAMESPACE_XMLNS); ...
Ale wtedy paramter RSS jest pusty tzn. bez żadnych atrybutów.
.. <rss> ..
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