2009-08-20 19 views
1

Hoを使用してDOMを使用してこの「シンプルな」XMLをPHPにするには?完全なコードが歓迎されます。PHPで名前空間URIを持つXMLを生成する

<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> 

私は失われています。コードはどんな説明よりも私を助けます。

答えて

1

「シンプル」にしたい場合は、DOMではなくSimpleXMLを使用してください。 SimpleXMLは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

コードです:

<?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(); 
?> 

それは出力:http://us2.php.net/manual/en/book.dom.php

<?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

関連する問題