php读取xml中根据条件指定的值 10
a.xml<?xmlversion="1.0encoding="UTF-8"?><name>zhangli</name><no>1</no><name>lisan</na...
a.xml
<?xml version="1.0 encoding="UTF-8"?>
<name>zhangli</name>
<no>1</no>
<name>lisan</name>
<no>2</no>
<name>wangwu</name>
<no>3</no>
<name>laoliu</name>
<no>4</no>
b.php
当name=lisan时,输出no的内容
这php应该如何写?
谢谢! 展开
<?xml version="1.0 encoding="UTF-8"?>
<name>zhangli</name>
<no>1</no>
<name>lisan</name>
<no>2</no>
<name>wangwu</name>
<no>3</no>
<name>laoliu</name>
<no>4</no>
b.php
当name=lisan时,输出no的内容
这php应该如何写?
谢谢! 展开
2个回答
展开全部
首先,你的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;
}
我处理的结果:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询