SimpleXML PHP: Как использовать двоеточия на имена

Я пытаюсь генерировать Продавца Google RSS, с помощью SimpleXML.

Образец, данный Google:

<?xml version="1.0"?>
<rss version="2.0" 
xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>The name of your data feed</title>
<link>http://www.example.com</link>
<description>A description of your content</description>
<item>
<title>Red wool sweater</title>
<link> http://www.example.com/item1-info-page.html</link>
<description>Comfortable and soft, this sweater will keep you warm on those cold winter nights.</description>
<g:image_link>http://www.example.com/image1.jpg</g:image_link> <g:price>25</g:price> <g:condition>new</g:condition> <g:id>1a</g:id>
</item>
</channel>
</rss>

Мой код имеет вещи как:

$product->addChild("g:condition", 'new');

Который генерирует:

<condition>new</condition>

Я считал онлайн, что должен вместо этого использовать:

$product->addChild("g:condition", 'new', 'http://base.google.com/ns/1.0');

Который теперь генерирует:

<g:condition xmlns:g="http://base.google.com/ns/1.0">new</g:condition>

Это кажется очень парадоксальным мне, поскольку теперь "xmlns" объявление идет ПОЧТИ КАЖДАЯ строка моего канала RSS вместо этого только однажды в корневом элементе.

Я пропускаю что-то?

13
задан Nathan H 10 June 2010 в 21:48
поделиться

1 ответ

Вам нужно добавить это пространство имен в родительский узел, предпочтительно корневой rss, чтобы дочерние узлы могли наследовать его вместо того, чтобы каждый раз явно указывать его.

1
ответ дан 1 December 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: