2009-08-20 4 views
1

Ho pour faire ce "simple" xml avec php en utilisant DOM? Le code complet sera le bienvenu.Générer XML avec l'espace de noms URI en PHP

<rss version="2.0" 
    xmlns:wp="http://url.com" 
    xmlns:dc="http://url2.com" 
> 
<channel> 
    <items> 
    <sometags></sometags> 
    <wp:status></wp:status> 
    </items> 
</channel> 
</rss> 

Je suis tellement perdu. Le code m'aidera plus que n'importe quelle explication.

Répondre

1

Si vous voulez "simple" alors utilisez SimpleXML, pas DOM. Notez que SimpleXML ne mettra pas en retrait le XML.

$rss = simplexml_load_string('<rss version="2.0" xmlns:wp="http://url.com" xmlns:dc="http://url2.com" />'); 

$channel = $rss->addChild('channel'); 
$items = $channel->addChild('items'); 
$sometags = $items->addChild('sometags'); 
$status = $items->addChild('status', null, 'http://url.com'); 

echo $rss->asXML(); 
5

Voici le code:

<?php 
$dom = new DOMDocument('1.0', 'utf-8'); 

$rss = $dom->createElement('rss'); 
$dom->appendChild($rss); 

$version = $dom->createAttribute('version'); 
$rss->appendChild($version); 

$value = $dom->createTextNode('2.0'); 
$version->appendChild($value); 

$xmlns_wp = $dom->createAttribute('xmlns:wp'); 
$rss->appendChild($xmlns_wp); 

$value = $dom->createTextNode('http://url.com'); 
$xmlns_wp->appendChild($value); 

$xmlns_dc = $dom->createAttribute('xmlns:dc'); 
$rss->appendChild($xmlns_dc); 

$value = $dom->createTextNode('http://url2.com'); 
$xmlns_dc->appendChild($value); 

$channel = $dom->createElement('channel'); 
$rss->appendChild($channel); 

$items = $dom->createElement('items'); 
$channel->appendChild($items); 

$sometags = $dom->createElement('sometags', ''); 
$items->appendChild($sometags); 

$wp_status = $dom->createElement('wp:status', ''); 
$items->appendChild($wp_status); 

echo $dom->saveXML(); 
?> 

Il produit:

<?xml version="1.0" encoding="utf-8"?> 
<rss 
    version="2.0" 
    xmlns:wp="http://url.com" 
    xmlns:dc="http://url2.com" 
> 
    <channel> 
    <items> 
     <sometags></sometags> 
     <wp:status></wp:status> 
    </items> 
    </channel> 
</rss> 

Fore plus d'aide: http://us2.php.net/manual/en/book.dom.php

Questions connexes