php 读取XML文件的方法--基于DOMDocument、simplexml、正则及xmlreader读取
2017-05-16 23:02:51
•
阅读
打赏
本文主要介绍了php 读取XML文件的方法,有DOMDocument、simplexml、正则及xmlreader读取xml文件。
xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<language>
<lan>
<type>web</type>
<name>php</name>
</lan>
<lan>
<type>web</type>
<name>java</name>
</lan>
</language>
DOMDocument
$doc = new DOMDocument();
$filepath = $_SERVER['DOCUMENT_ROOT']."/a.xml"; //xml文件路径
$doc->load($filepath);
$re = $doc->getElementsByTagName("lan");
foreach ($re as $va) {
$lan = $va->getElementsByTagName("type");
$type = $lan->item(0)->nodeValue;
echo $type;
$lan1 = $va->getElementsByTagName("name");
$name = $lan1->item(0)->nodeValue;
echo $name;
}
simplexml
//将XML中的数据,读取到数组对象中
$xml_array = simplexml_load_file('a.xml');
foreach ($xml_array as $tmp) {
echo $tmp->type . "-" . $tmp->name . "<br>";
}
php正则表达式
$xml = "";
$f = fopen('a.xml', 'r');
//读取数据
while ($data = fread($f, 4096)) {
$xml .= $data;
}
fclose($f);
//匹配最外层标签里面的内容
preg_match_all("/\<lan\>(.*?)\<\/lan\>/s", $xml, $lan);
foreach ($lan[1] as $k => $va) {
//匹配出名字
preg_match_all("/\<name\>(.*?)\<\/name\>/", $va, $name);
//匹配出类型
preg_match_all("/\<type\>(.*?)\<\/type\>/", $va, $type);
foreach ($name[1] as $key => $val) {
echo $val . " - " . $type[1][$key] . "<br>";
}
}
xmlreader
$reader = new XMLReader();
$reader->open('a.xml'); //读取xml数据
$i = 1;
while ($reader->read()) {
//是否读取
if ($reader->nodeType == XMLReader::TEXT) {
//判断node类型
echo $reader->value . "<br>";
$i++;
}
}
以上就是本文php 读取XML文件的方法--基于DOMDocument、simplexml、正则及xmlreader读取的全部内容,希望本文所述对大家PHP程序设计有所帮助。
相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型