当前位置:  开发笔记 > 编程语言 > 正文

使用SimpleXML从头开始创建XML对象

如何解决《使用SimpleXML从头开始创建XML对象》经验,为你挑选了3个好方法。

是否可以使用PHP的SimpleXML函数从头开始创建XML对象?通过函数列表,可以将现有的XML字符串导入到可以操作的对象中,但如果我只想从头开始以编程方式生成XML对象,那么最好的方法是什么?

我发现你可以使用simplexml_load_string()并传入你想要的根字符串,然后你有一个你可以通过添加子项来操作的对象......虽然这看起来像是一种黑客,因为我必须实际上,在加载之前,将一些XML硬编码到字符串中.

我已经使用DOMDocument函数完成了它,虽然它有点令人困惑,因为我不确定DOM与创建纯XML文档有什么关系......所以也许它的命名很糟糕:-)



1> DreamWerx..:

你当然可以.例如.

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

产量



    

玩得开心.


如何在内容标记之间添加一些文本.说哇它的作品!
如何将其保存为服务器中的xml文件?使其可用于我的动作代码?

2> PhiLho..:

在PHP5中,您应该使用Document Object Model类.例:

$domDoc = new DOMDocument;
$rootElt = $domDoc->createElement('root');
$rootNode = $domDoc->appendChild($rootElt);

$subElt = $domDoc->createElement('foo');
$attr = $domDoc->createAttribute('ah');
$attrVal = $domDoc->createTextNode('OK');
$attr->appendChild($attrVal);
$subElt->appendChild($attr);
$subNode = $rootNode->appendChild($subElt);

$textNode = $domDoc->createTextNode('Wow, it works!');
$subNode->appendChild($textNode);

echo htmlentities($domDoc->saveXML());


我认为这在很大程度上取决于您打算做什么。如果您需要基本且快速的功能,SimpleXML是完美的选择!但是无论如何:问题是“使用SimpleXML从头开始创建XML对象”-太离题了,对不起。

3> Stefan Gehri..:

请在这里查看我的答案.正如dreamwerx.myopenid.com指出的那样,可以使用SimpleXML来实现这一点,但DOM扩展将是更好,更灵活的方式.另外还有第三种方法:使用XMLWriter.它比DOM更简单,因此它是我从头开始编写XML文档的首选方式.

$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));

顺便说一句:DOM代表d ocument Ø bject 中号奥德尔; 这是XML文档中的标准化API.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有