本文目录一览:
使用php循环出xml中多个相同重复的标签
重复的 xml 元素节点可以用 foreach 循环取出重复元素。 示例:
// $xmlData = file_get_contents('items.xml');
$xmlElement = simplexml_load_string($xmlData, 'SimpleXMLElement', LIBXML_NOCDATA);
$elements = $xmlElement->CustAcctId;
foreach ($elements as $element) {
var_dump($element);
}
提示:使用 simplexml_load_string($xmlString, 'SimpleXMLElement', LIBXML_NOCDATA)
解析 xml 字符串,如果是 xml 文件,可以 file_get_contents
读取文件。
php 获取xml某个节点的所有内容
php是可以读取读取xml文件的。同时也可以遍历节点。网上有很多方法。你可以百度下。这里给你贴代码的话有很多代码。 举例:有个名字为a.xml的文件。内容为:
<?xml version="1.0" encoding="gb2312"?>
<xml>
<list>111</list>
<list>2222</list>
<list>3333</list>
</xml>
读取:
<?php
$xml = new DOMDocument();
$xml->load('a.xml');
foreach ($xml->getElementsByTagName('list') as $list) {
$value = $list->firstChild->nodeValue;
echo $value . "<br />";
}
?>
输出为:
111
222
333
getelementsbytagname,Php怎么读取xml中指定节点的指定名称的属
首先,你的xml文件,缺少root元素,version后边没有"结尾。
然后是你解析的思路是:
先用simplexml_load_string
或者$xml = simplexml_load_file('test.xml');
,读取xml,然后用get_object_vars
,转成数组,然后根据数组,找出对应关系,或者在生成数组的时候直接写成'lisan'='no'
;这个关系。简单点就是直接读成数组,然后遍历,找到对应的值之间的关系就OK。
用到的函数:
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;
}