不多说了,上代码。
students.xml
- <?xml version='1.0' encoding='utf-8'?>
- <students>
- <student sn="0001">
- <name><![CDATA[关羽]]></name>
- <age>27</age>
- <sex>男</sex>
- </student>
- <student sn='0002'>
- <name>张飞</name>
- <age>27</age>
- <sex>男</sex>
- </student>
- <student sn='0003'>
- <name>小乔</name>
- <age>18</age>
- <sex>女</sex>
- </student>
- </students>
1.DOM
<?php
$students = [];
//实例化dom对象
$dom = new DOMDocument();
//2.加载xml文档
$dom->load('./students.xml');
//3.获取文档的根节点
$rootElement = $dom->documentElement;
//4.获取子节点
$childNodes = $rootElement->childNodes;
//5.循环子节点
for($i=0;$i<$childNodes->length;$i++){
//定义一个数组,存放节点
$student = [];
//5.1.获取每个子节点
$childNode = $childNodes->item($i);
//5.2过滤非元素节点
if($childNode->nodeType==1){
$student['sn'] = $childNode->getAttribute('sn');
//5.2.1获取该元素的所有子节点
$sonChildNodes = $childNode->childNodes;
//5.2.2循环该元素的所有子元素
for($j=0;$j<$sonChildNodes->length;$j++){
//定义一个数组,存放节点]
//获取每个子节点
$sonChildNode = $sonChildNodes->item($j);
//过滤掉非元素节点
if($sonChildNode->nodeType==1){
$student[$sonChildNode->nodeName] = $sonChildNode->nodeValue;
}
}
$students[] = $student;
}
}
var_dump($students);
2.simpleXml
<?php
$students = [];
$xmls = simplexml_load_file('students.xml');
//获取所有student元素
foreach ($xmls as $xml){
//声明一个数组
$student = [];
//赋值
$student['sn'] = (string)$xml['sn'];
$student['name'] = (string)$xml->name;
$student['age'] = (string)$xml->age;
$student['sex'] = (string)$xml->sex;
$students[] = $student;
}
var_dump($students);