Xquary是即将普及的对xml的统一查询办法,java已经支持,但php只有一些零散的用户代码支持。可能是xml毕竟属于交换格式,查询这种性能要求高的复杂操作不适合这种格式。所以没有直接支持。
对于这个例子中的情况,遍历2层就能查到
<?php
$xml=<<<TTT
<?xml version='1.0' standalone='yes'?>
<r>
<a>
<a1>XXX</a1>
<a2>XXX</a2>
<a3>XXX</a3>
<a4>XXX</a4>
</a>
<b>
<b1>XXX</b1>
<b2>XXX</b2>
<b3>XXX</b3>
<b4>张三</b4>
</b>
</r>
TTT;
function findValue($xml, $value){
$a=new SimpleXMLElement($xml);
foreach($a as $k=>$e)
foreach($e as $c)
if(strcmp(strval($c),$value)===0)
return $e->asXML();
return FASLE;
}
var_dump(findValue($xml,'张三'));
=======
string '<b>
<b1>XXX</b1>
<b2>XXX</b2>
<b3>XXX</b3>
<b4>张三</b4>
</b>' (length=71)
- 上一篇: PHP如何查找,包含两个分先后顺序关键词的记录
- 下一篇: php 如何统计站内关键词的搜索次数