可以搜索特定的标题文本,仅显示描述xml吗?

问题描述 投票:1回答:2
    <?php
  $xml=simplexml_load_file("https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=604") or die("Error: Cannot create object");
  foreach ($xml->children() as $items) {
    echo "<pre>";
    print_r($items);
    echo "</pre>";
    echo $items->title;
    echo $items->description;
 }
?>

在此示例中,我试图搜索一个名称特殊的标题(参见照片):“ Ev 134 Haukelifjell(Vestfold和Telemark / Vestland)”。找到之后,我只想显示标有黄色的标题后面的描述(参见照片)。可以用xml完成​​吗?

图片参考:Output

最近的帖子由于重复而被删除,如果是这种情况,也可以请参阅我所描述问题的特定位置。我对编码非常陌生,并不了解很多。

php xml xml-parsing
2个回答
0
投票

我不确定这是否正是您要寻找的,但是您可以在此处使用xpath(并将其修改为所需的输出);因此,请尝试以下版本:

foreach ($xml->xpath('//item/title[contains(text(),"134 Haukelifjell")]/text()') as $items) 
  { 
    echo $items;
    foreach ($items->xpath('./following-sibling::description/text()') as $desc)
    echo $desc;   
     }

我得到此输出:

Ev 134 Haukelifjell (Vestland/Vestfold og Telemark) Vær- og føreforhold: Snø- og isdekke. Klokken 18:15 var det -5 grader, laber bris og skyet. Gjelder fra: 09.01.2020 18:17

0
投票

您正在尝试解析RSS feed,因此您可以这样操作:

function Feed($url) {
    $feed = simplexml_load_file($url);
    $result = array();
    foreach ($feed->channel->item as $content) {
        array_push($result, $content);
    }
    return $result;
}

$title = 'Ev 134 Haukelifjell'; // The title you want to search for

foreach(Feed('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=604') as $f ) {
    if (strpos($f->title, $title) !== false) 
        echo $f->description;
}

输出:

Vær- og føreforhold: Snø- og isdekke. Klokken 23:05 var det -7 grader, svak vind og klart. Gjelder fra: 09.01.2020 23:14 
© www.soinside.com 2019 - 2024. All rights reserved.