Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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 如何循环通过XPath部分匹配创建的数组来显示XML元素_Php_Xml_Xpath_Rss - Fatal编程技术网

Php 如何循环通过XPath部分匹配创建的数组来显示XML元素

Php 如何循环通过XPath部分匹配创建的数组来显示XML元素,php,xml,xpath,rss,Php,Xml,Xpath,Rss,我已经在这方面工作了一段时间了,现在我已经处于一个完整的阶段,我不确定我是否正在以正确的方式进行这项工作 我的网站上显示了一个RSS提要。我已经创建了一个搜索框,要求它与XML的标题/描述部分匹配 <?php $xml = <<<XML XML; $sxe = simplexml_load_file('http://www.music-news.com/rss/news.asp'); $searchKeyword = $_POST["S

我已经在这方面工作了一段时间了,现在我已经处于一个完整的阶段,我不确定我是否正在以正确的方式进行这项工作

我的网站上显示了一个RSS提要。我已经创建了一个搜索框,要求它与XML的标题/描述部分匹配

  <?php
    $xml = <<<XML
    XML;
    $sxe = simplexml_load_file('http://www.music-news.com/rss/news.asp');
    $searchKeyword = $_POST["SearchBox"];
    $area = $sxe->xpath("//item[contains(title,'".$searchKeyword."')]");
    print_r($area);
   ?> 
它将在RSS提要中带回正确的记录(可以从发布日期确定)。然而,我试图得到它,以便搜索结果将显示为原来的RSS饲料显示在网站上。初始RSS提要的代码如下所示

<?php

$rss = simplexml_load_file('http://www.music-news.com/rss/news.asp');

foreach ($rss->channel->item as $item) 
{
echo "<h2>" .$item->title . "</h2>";
echo "<p>" . $item->pubDate . "</p>";
echo "<p>" . $item->description .  "</p>";
echo '<p><a href="'. $item->link .'">' .ReadMore. "</a><p>";
} 
?>

$area
应该是一个由零到多
simplexml
-元素组成的数组,因此使用:

foreach($area as $item) {
    echo "<h2>" .$item->title . "</h2>";
    echo "<p>" . $item->pubDate . "</p>";
    // and so on
} 
foreach($area作为$item){
回显“$item->title.”;
回显“”$item->pubDate。”

”; //等等 }
请参见一个工作示例:


顺便说一句,你应该清理
$searchKeyword
以防止任何有害的输入,请参见,特别是排名靠前的答案有一个关于使用PHP清理的最后一段。

非常感谢你,我一直在绞尽脑汁尝试各种方法。现在一切正常:)
foreach($area as $item) {
    echo "<h2>" .$item->title . "</h2>";
    echo "<p>" . $item->pubDate . "</p>";
    // and so on
}