Ich schreibe einen RSS-Feed für Google-Produkte mit SimpleXML in PHP. Ich habe meine Produkte kommen aus der Datenbank und erstellen die RSS-Datei in Ordnung, aber Probleme, wenn es um Namespaces kommt.So verwenden Sie Namespaces beim Schreiben von XML-Dateien mit SimpleXML
Ich habe Stack-Überlauf gegoogelt und suche und dutzende Beiträge von stoßen, wie XML zu analysieren Feeds Namespaces enthalten, aber mein Problem ist eigentlich Authoring eine XML-Datei mit einem Namespace. Hier
ist, was die Datei sollte wie folgt aussehen:
<?xml version="1.0" encoding="UTF-8" ?>
<rss version ="2.0" xmlns:g="http://base.google.com/ns/1.0">
<!-- content -->
</rss>
Und hier ist mein Code:
<?php
$xml = new SimpleXMLElement('<rss></rss>');
$xml->addAttribute('version', '2.0');
$xml->addChild('channel');
$xml->channel->addChild('title', 'Removed');
$xml->channel->addChild('description', 'Removed');
$xml->channel->addChild('link', 'Removed');
foreach ($products as $product) {
$item = $xml->channel->addChild('item');
$item->addChild('title', htmlspecialchars($product['title']));
$item->addChild('description', htmlspecialchars($product['title']));
$item->addChild('link', $product['url']);
$item->addChild('id', $product['product_id']);
$item->addChild('price', $product['price_latest']);
$item->addChild('brand', $product['range']);
$item->addChild('condition', 'new');
$item->addChild('image_link', $product['image']);
}
Wie stelle ich den g
Namespace, sowohl die xmlns
Deklaration in der Wurzel rss
Element und dann als Präfix für id
, price
, brand
, condition
und image_link
in jedem item
Element? Hier
ich mit sehr empfehlen [DOM] (http://php.net/manual/en/book .dom.php) dafür. SimpleXML ist nur das - * einfach *. Was Sie tun, hat jetzt das Reich des Einfachen verlassen. Sie benötigen hierfür eine API mit allen Funktionen. – DaveRandom
Haben Sie ein Beispiel dafür, wie ich einen Namespace mit DOM hinzufügen würde? –
@MartinBean Es gibt ein Beispiel in [Handbuch für DOMDocument createElementNS] (http://php.net/manual/domdocument.createelements.php). – Furgas