Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在对象中搜索值?_Php_Xml_Search_Object - Fatal编程技术网

Php 如何在对象中搜索值?

Php 如何在对象中搜索值?,php,xml,search,object,Php,Xml,Search,Object,我有一个通过XML文件的PHP脚本,但我希望能够在对象中搜索值,就像我可以在数组中搜索值一样 根据PHP.net上的评论,array_search()从PHP5开始就支持对象,但我无法让它工作 XML文件是公共汽车站的列表,我希望能够在匹配的公共汽车站之后搜索对象 当前代码如下所示,只列出了站点: $xml = new SimpleXMLElement(file_get_contents("StopPointList.xml")); foreach ($xml->StopPoint as

我有一个通过XML文件的PHP脚本,但我希望能够在对象中搜索值,就像我可以在数组中搜索值一样

根据PHP.net上的评论,array_search()从PHP5开始就支持对象,但我无法让它工作

XML文件是公共汽车站的列表,我希望能够在匹配的公共汽车站之后搜索对象

当前代码如下所示,只列出了站点:

$xml = new SimpleXMLElement(file_get_contents("StopPointList.xml"));

foreach ($xml->StopPoint as $stop)
{
    echo $stop->StopName.'<br />';
}
$xml=newsimplexmlement(文件获取内容(“StopPointList.xml”);
foreach($xml->StopPoint作为$stop)
{
echo$stop->StopName.“
”; }
作为参考,公共汽车站XML文件如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?>
<StopPointList NetworkVersion="20080828">
    <StopPoint>
        <DISID>3012086:2</DISID>
        <PositionNumber>2</PositionNumber>
        <StopPointName>2</StopPointName>
        <StopName>Sinsenveien</StopName>
    </StopPoint>
    <StopPoint>
        <DISID>2160364:2</DISID>
        <PositionNumber>2</PositionNumber>
        <StopPointName>2</StopPointName>
        <StopName>Rogneskjær</StopName>
    </StopPoint>
</StopPointList>

3012086:2
2.
2.
辛森维恩
2160364:2
2.
2.
罗涅斯基尔
我希望能够像这样进行类似MySQL的搜索:%search%


我怎样才能做到这一点呢?

我想说XPath(/)就是为了这个而设计的

例如:要查找名称包含
“Sinsen”
的所有停止点,请使用以下XPath表达式:

//StopPoint[contains(StopName, 'Sinsen')] //StopPoint[包含(StopName,'Sinsen')]
在PHP中,您可以使用它。

这似乎很有效!谢谢但我还有一个问题。如何使搜索不区分大小写?:)这是解决下一个堆栈溢出问题的极好材料。:-)哦,别忘了提一下,你想要一个适用于非英语字母表的解决方案。