Php 如何循环通过XPath部分匹配创建的数组来显示XML元素
我已经在这方面工作了一段时间了,现在我已经处于一个完整的阶段,我不确定我是否正在以正确的方式进行这项工作 我的网站上显示了一个RSS提要。我已经创建了一个搜索框,要求它与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
<?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
}