PHP中的XML编码/解码类

3

有人能推荐一个在PHP中编码和解码XML的好而稳定的类吗?

编辑

在php.net上找到了这个例子,但是无法使其工作...没有返回错误信息。

$sxe = new SimpleXMLElement();
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();
2个回答

6

SimpleXML 可能是最简单的方案。例如:

<root>
   <node>
      <sub>Text</sub>
   </node>
</root>

 

$xml = new SimpleXMLElement('xml_file.xml', 0, true);
echo $xml->node->sub; // Displays "Text"

编辑:

针对您的代码无法工作的问题,您需要在类的初始化中包含一个根节点:

$sxe = new SimpleXMLElement('<root />');

@clarkk:您可以使用SimpleXMLElement::addChild()等方法向XML对象添加新节点。 - user142162
@clarkk:不,因为XML没有数组;它有带有子节点的节点。因此,您必须编写自己的函数将数组转换为XML数据。 - user142162
好的,我该如何检查服务器上是否安装了它?对我来说似乎无法正常工作。 - clarkk
尝试创建一个新的SimpleXMLElement类。如果它说找不到该类,则需要安装它。 - user142162
找到了.. SimpleXML Simplexml支持已启用 修订版 $Revision: 299424 $ 模式支持已启用... 但我无法使其正常工作.. 稍后会更新我的问题 - clarkk

-1

你所说的编码/解码是指写入/读取吗?XML不是代码,只是标记语言。不过,XML有一种叫做字符/实体编码的东西。

PHP基本上有两个用于处理XML的类或库。SimpleXML和DOMElement。您需要检查phpinfo以查看它们是否已启用,并在php.ini中启用它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接