Sıfırdan bir XML nesnesi oluşturmak için SimpleXML kullanma

2 Cevap php

Sıfırdan bir XML nesnesi oluşturmak için PHP'nin SimpleXML fonksiyonlarını kullanmak mümkün mü? Fonksiyon listesinde bakarak, daha sonra işleyebilirsiniz bir nesne içine varolan bir XML dizesi almak için yollar var, ama ben sadece programlı olarak sıfırdan bir XML nesnesi oluşturmak istiyorsanız, bunu ne için en iyi yolu nedir?

Ben zorunda çünkü bu, bir kesmek tür gibi görünüyor olsa da ... () simplexml_load_string kullanmak ve istediğiniz kök dize geçmek, ve o zaman çocuklar ekleyerek işleyebilirsiniz bir nesne var olduğunu anladım Bu yüklenebilir önce aslında dizeye bazı XML kodlamalısınız.

Ben DOM saf bir XML belgesi oluşturma ile ne ilgisi var emin değilim çünkü biraz kafa karıştırıcı olsa da ben, DOMDocument functions kullanarak yaptık ... bu yüzden belki de sadece kötü :-) adında oluyor

2 Cevap

Elbette yapabilirsiniz. Örn.

<?php
$newsXML = new SimpleXMLElement("<news></news>");
$newsXML->addAttribute('newsPagePrefix', 'value goes here');
$newsIntro = $newsXML->addChild('content');
$newsIntro->addAttribute('type', 'latest');
Header('Content-type: text/xml');
echo $newsXML->asXML();
?>

Çıktı

<?xml version="1.0"?>
<news newsPagePrefix="value goes here">
    <content type="latest"/>
</news>

Eğlenin.

Benim cevap bakınız here. dreamwerx.myopenid.com işaret ettiği gibi, bu SimpleXML ile bunu yapmak mümkündür, ancak DOM extension daha iyi ve daha esnek bir yol olacaktır. XMLWriter kullanarak: Ayrıca üçüncü bir yolu yoktur. Bu DOM kullanmak çok daha basit ve bu nedenle sıfırdan XML belgeleri yazma benim tercih edilen yoludur.

$w=new XMLWriter();
$w->openMemory();
$w->startDocument('1.0','UTF-8');
$w->startElement("root");
    $w->writeAttribute("ah", "OK");
    $w->text('Wow, it works!');
$w->endElement();
echo htmlentities($w->outputMemory(true));

Bu arada:; DOM D Opendocument O bject M Odel açılımı Bu XML belgeleri içine standart API.