PHP SimpleXML 处理最普通的 XML 任务,其余的任务则交由其它扩展处理。
SimpleXML 是 PHP 5 中的新特性。
SimpleXML 扩展提供了一种获取 XML 元素的名称和文本的简单方式。
与 DOM 或 Expat 解析器相比,SimpleXML 仅仅用几行代码就可以从 XML 元素中读取文本数据。
SimpleXML 可把 XML 文档(或 XML 字符串)转换为对象,比如:
当执行类似下列的基础任务时,SimpleXML 使用起来非常快捷:
然而,在处理高级 XML 时,比如命名空间,最好使用 Expat 解析器或 XML DOM。
从 PHP 5 开始,SimpleXML 函数是 PHP 核心的组成部分。无需安装就可以使用这些函数。
假设我们有如下的 XML 文件,"note.xml":
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <note>
- <to>Tove</to>
- <from>Jani</from>
- <heading>Reminder</heading>
- <body>Don't forget me this weekend!
现在我们想要输出上面的 XML 文件的不同信息:
输出 $xml 变量(是 SimpleXMLElement 对象)的键和元素:
- $xml=simplexml_load_file("note.xml");
- print_r($xml);
- ?>
以上代码将输出:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
输出 XML 文件中每个元素的数据:
- $xml=simplexml_load_file("note.xml");
- echo $xml->to . "
"; - echo $xml->from . "
"; - echo $xml->heading . "
"; - echo $xml->body;
- ?>
以上代码将输出:
Tove Jani Reminder Don't forget me this weekend!
输出每个子节点的元素名称和数据:
- $xml=simplexml_load_file("note.xml");
- echo $xml->getName() . "
"; -
- foreach($xml->children() as $child)
- {
- echo $child->getName() . ": " . $child . "
"; - }
- ?>
以上代码将输出:
note to: Tove from: Jani heading: Reminder body: Don't forget me this weekend!