1

I have a web page setup that uses simple XML to retrieve an RSS feed then it is echoed onto the page. I am trying to set up a search feature that will allow users to type in a query for the RSS feed then it will show the results on the page.

I know you can use Xpath contains

/item[contains(title, 'query')]/description 

however I want the "query" section of this to be replaced with whatever is typed into the search box.

Any help would be greatly appreciated or a link to a relevant site with the answer.

Thanks in advance

NorthCat
  • 9,643
  • 16
  • 47
  • 50

1 Answers1

-1

NOTE: I consider the application language you are seeking solution in is PHP:

You will need to put the search keyword dynamically in the below fashion:

//item[contains(title,'".$searchKeyword."')]/description

Below is the example:

<?php
$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <area>
        <photographer_id>1</photographer_id>
        <photographer>John</photographer>
        <image>a</image>
    </area>
    <area>
        <photographer_id>1</photographer_id>
        <photographer>John</photographer>
        <image>b</image>
    </area>
    <area>
        <photographer_id>1</photographer_id>
        <photographer>John</photographer>
        <image>c</image>
    </area>
    <area>
        <photographer_id>2</photographer_id>
        <photographer>Fred</photographer>
        <image>a</image>
    </area>
</root>
XML;

$sxe = new SimpleXMLElement($xml);
$searchKeyword = "Fred";
$area = $sxe->xpath("//area[contains(photographer,'".$searchKeyword."')]");

print_r($area);
  • Thanks that does clear it up a lot more for me. The $searchKeyword variable would what is typed into the search box so would I use post on the form that the search box is in and store that as the variable to use within $area? – Daniel Tate Apr 24 '15 at 10:36
  • yes you got it right. The search keyword will contain the posted value from the search box – Rakesh Lamp Stack Apr 24 '15 at 11:03
  • Daniel if you find this answer helpful. Do up vote it. It will be a moral buster. Thanks! – Rakesh Lamp Stack Apr 24 '15 at 12:29
  • Also, as the XML that is going to be used would be retrieved from a URL would I need to replace everything between your tags with: $rss = simplexml_load_file('http://www.url.asp'); – Daniel Tate Apr 25 '15 at 11:14
  • Yes, you will have to... the xml i have mentioned is for example. if it is coming from any url then you will have to use what you have wrote i.e. $rss = simplexml_load_file('url.asp'); , if it is going to be coming as a string then $rss = simplexml_load_string($xmlstring); – Rakesh Lamp Stack Apr 28 '15 at 04:44