SimpleXML解析xml文件
SimpleXML 扩展提供了一种获取 XML 元素的名称和文本的简单方式。
与 DOM 或 Expat 解析器相比,SimpleXML 仅仅用几行代码就可以从 XML 元素中读取文本数据。
SimpleXML 可把 XML 文档(或 XML 字符串)转换为对象,比如:
-
元素被转换为 SimpleXMLElement 对象的单一属性。当同一级别上存在多个元素时,它们会被置于数组中。
-
属性通过使用关联数组进行访问,其中的索引对应属性名称。
-
元素内部的文本被转换为字符串。如果一个元素拥有多个文本节点,则按照它们被找到的顺序进行排列。
当执行类似下列的基础任务时,SimpleXML 使用起来非常快捷:
-
读取/提取 XML 文件/字符串的数据
-
编辑文本节点或属性
然而,在处理高级 XML 时,比如命名空间,最好使用 Expat 解析器或 XML DOM。
XML文件:
<?xml version="1.0" encoding="utf-8"?>
<note>
<to>老爸</to>
<from>儿子</from>
<heading>问候</heading>
<body>最近身体好吗,天气变冷,记得多穿衣服</body>
</note>
PHP文件:
1---
<?php
$xml = simplexml_load_file("note.xml");
print_r($xml);
输出:
SimpleXMLElement Object ( [to] => 老爸 [from] => 儿子 [heading] => 问候 [body] => 最近身体好吗,天气变冷,记得多穿衣服 )
2---
<?php
$xml=simplexml_load_file("note.xml");
echo $xml->to . "<br>";
echo $xml->from . "<br>";
echo $xml->heading . "<br>";
echo $xml->body;
?>
输出:
老爸
儿子
问候
最近身体好吗,天气变冷,记得多穿衣服
3---
<?php
$xml = simplexml_load_file("note.xml");
echo $xml->getName()."<br>";
foreach ($xml->children() as $child){
echo $child->getName().":".$child."<br>";
}
输出:
note
to:老爸
from:儿子
heading:问候
body:最近身体好吗,天气变冷,记得多穿衣服
解析原理:
1.加载xml文件,解析器会将xml文件转换成SimpleXMLElement Object。
2.获取对象中的每一个子元素,得到内容。