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应该如何写?
谢谢!
展开
 我来答
ys5955092
2013-11-05 · TA获得超过671个赞
知道小有建树答主
回答量:551
采纳率:100%
帮助的人:571万
展开全部

首先,你的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;
}

我处理的结果:

呼呼扯
2013-11-09 · TA获得超过1705个赞
知道小有建树答主
回答量:230
采纳率:75%
帮助的人:147万
展开全部
你的xml就错了,如果我没想错的话,no标签应该是name标签的子级,不过我做的都是将值作为属性储存到标签中
如 <n name="wangwu">
<o no="3" />
</n>
这样的话,用document.getElementsByTagName(n).getAttribute(name);
然后循环判断 因为有很多个n标签,所以用foreach最好 ,然后再分别匹配
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式