本文目录一览:
- php如何获取xml根节点名称
- 关于PHP解析XML怎么通过属性查找到指定节点
- getelementsbytagname,Php怎么读取xml中指定节点的指定名称的属
- PHP获取xml中值的几种方法简单总结
- PHP如何取XML中数据
php如何获取xml根节点名称
<?xml version="1.0" encoding="UTF-8"?>
<humans>
<zhangying>
<name>张映</name>
<sex>男</sex>
<old>28</old>
</zhangying>
<tank>
<name>tank</name>
<sex>男</sex>
<old>28</old>
</tank>
</humans>
使用 SimpleXML
读取 XML:
<?php
$xml_array = simplexml_load_file('person.xml'); // 将XML中的数据,读取到数组对象中
foreach ($xml_array as $tmp) {
echo $tmp->name . "-" . $tmp->sex . "-" . $tmp->old . "<br>";
}
?>
关于PHP解析XML怎么通过属性查找到指定节点
定义 XmlDocument
对象 xml
:
XmlElement elem = xml.GetElementsByTagName("DTVActionWindow1")[0];
elem
是该节点的对象,可以通过 elem.Text
获取节点的文本内容(不确定是否是该属性,请查阅相关文档)。
getelementsbytagname,Php怎么读取xml中指定节点的指定名称的属
首先,你的 XML 文件缺少根元素,version
后面没有 "
结尾。
解析思路如下:
- 使用
simplexml_load_string
或simplexml_load_file('test.xml')
读取 XML。 - 使用
get_object_vars
将对象转为数组。 - 遍历数组,找到对应值之间的关系。 示例函数如下:
function getXmlData($strXml) {
$pos = strpos($strXml, 'xml');
if ($pos) {
$xmlCode = simplexml_load_string($strXml, 'SimpleXMLElement', LIBXML_NOCDATA);
$arrayCode = get_object_vars_final($xmlCode);
return $arrayCode;
} else {
return '';
}
}
function get_object_vars_final($obj) {
if (is_object($obj)) {
$obj = get_object_vars($obj);
}
if (is_array($obj)) {
foreach ($obj as $key => $value) {
$obj[$key] = get_object_vars_final($value);
}
}
return $obj;
}
PHP获取xml中值的几种方法简单总结
PHP 中有个内置类可以用来操作 XML,简单示例如下:
$xmlData = "<?xml version='1.0' encoding='UTF-8'?><xml><name>来自上海</name></xml>"; // xml 数据
$doc = new DOMDocument();
$doc->loadXML($xmlData); // 加载XML数据
$root = $doc->documentElement; // 获取根节点对象
$items = $root->getElementsByTagName('name'); // 获取 name 节点
echo $items[0]->nodeValue; // 输出获取到的所有节点中的第一个节点的值
foreach ($items as $value) {
echo $value->nodeValue; // 输出节点中的值
}
PHP如何取XML中数据
将 XML 转换为数组处理:
<?php
/**
* function:使用字符串方式读XML文件
* author:JetWu
* date:2016.12.03
*/
$file = './write_str.xml';
$con = file_get_contents($file); // XML标签配置
$xmlTag = array('starttime', 'endtime', 'school');
$arr = array();
foreach ($xmlTag as $x) {
preg_match_all("/<" . $x . ".*<\/" . $x . ">/", $con, $temp);
$arr[] = $temp[0];
}
// 去除XML标签并组装数据
$data = array();
foreach ($arr as $key => $value) {
foreach ($value as $k => $v) {
$a = explode($xmlTag[$key] . '>', $v);
$v = substr($a[1], 0, strlen($a[1]) - 2);
$data[$k][$xmlTag[$key]] = $v;
}
}
echo '<pre>';
print_r($data);