From: Sridhar Pandurangiah on
Hi

I have the following statement that locates the node "membernumber" with
the value A192. This works perfectly fine.

$v = $row->xpath('//membernumber[. = "A192"]');

But now I need to pass this value to XPath within a string variable say

$v = $row->xpath('//membernumber[. = $MemberId]');

But this doesnt work due to the quotes. What I intend PHP to do is to
substitute the value for $MemberId and then execute the XPath query. I
have grappled with it for a few days before posting this. Any ideas are
most welcome

Best regards

Sridhar
From: Ashley Sheridan on
On Wed, 2010-09-15 at 13:06 +0530, Sridhar Pandurangiah wrote:

> Hi
>
> I have the following statement that locates the node "membernumber" with
> the value A192. This works perfectly fine.
>
> $v = $row->xpath('//membernumber[. = "A192"]');
>
> But now I need to pass this value to XPath within a string variable say
>
> $v = $row->xpath('//membernumber[. = $MemberId]');
>
> But this doesnt work due to the quotes. What I intend PHP to do is to
> substitute the value for $MemberId and then execute the XPath query. I
> have grappled with it for a few days before posting this. Any ideas are
> most welcome
>
> Best regards
>
> Sridhar
>


Use double quotes instead, which should allow PHP to expand the
variables.

Thanks,
Ash
http://www.ashleysheridan.co.uk


From: Sridhar Pandurangiah on

-------- Original Message --------
Subject: Re: Xpath arguments in variable
From: php-general(a)garydjones.name (Gary)
To:
Date: Wed Sep 15 2010 13:34:11 GMT+0530 (IST)

Whats wrong with
$v = $row->xpath('//membernumber[. = ' . $MemberId . ']');
?

Am I not understanding what you are trying to ask?

--------------------

I tried this but doesn't work. I guess the above statement is
concatenating the entire string and the substitution isn't happening

What I am trying to do is as follows
$MemberId = 'A192';
$v = $row->xpath('//membernumber[. = ' . $MemberId . ']');

The $MemberId should be substituted with A192 and then the xpath query
should be executed. The result should be that I locate the membernumber
XML element that has the value A912.

Best regards

Sridhar


> Sridhar Pandurangiah wrote:
>> now I need to pass this value to XPath within a string variable say
>>
>> $v = $row->xpath('//membernumber[. = $MemberId]');
>>
>> But this doesnt work due to the quotes. What I intend PHP to do is to
>> substitute the value for $MemberId and then execute the XPath query. I
>> have grappled with it for a few days before posting this.
>
> Whats wrong with
> $v = $row->xpath('//membernumber[. = ' . $MemberId . ']');
> ?
>
> Am I not understanding what you are trying to ask?
>
From: Ashley Sheridan on
On Wed, 2010-09-15 at 14:03 +0530, Sridhar Pandurangiah wrote:

> -------- Original Message --------
> Subject: Re: Xpath arguments in variable
> From: php-general(a)garydjones.name (Gary)
> To:
> Date: Wed Sep 15 2010 13:34:11 GMT+0530 (IST)
>
> Whats wrong with
> $v = $row->xpath('//membernumber[. = ' . $MemberId . ']');
> ?
>
> Am I not understanding what you are trying to ask?
>
> --------------------
>
> I tried this but doesn't work. I guess the above statement is
> concatenating the entire string and the substitution isn't happening
>
> What I am trying to do is as follows
> $MemberId = 'A192';
> $v = $row->xpath('//membernumber[. = ' . $MemberId . ']');
>
> The $MemberId should be substituted with A192 and then the xpath query
> should be executed. The result should be that I locate the membernumber
> XML element that has the value A912.
>
> Best regards
>
> Sridhar
>
>
> > Sridhar Pandurangiah wrote:
> >> now I need to pass this value to XPath within a string variable say
> >>
> >> $v = $row->xpath('//membernumber[. = $MemberId]');
> >>
> >> But this doesnt work due to the quotes. What I intend PHP to do is to
> >> substitute the value for $MemberId and then execute the XPath query. I
> >> have grappled with it for a few days before posting this.
> >
> > Whats wrong with
> > $v = $row->xpath('//membernumber[. = ' . $MemberId . ']');
> > ?
> >
> > Am I not understanding what you are trying to ask?
> >
>


Did you try using double quotes?

Thanks,
Ash
http://www.ashleysheridan.co.uk


From: Pete Ford on
If you needed the double-quotes in the Xpath expression when the constant is
used , then you probably need them in the variable version.

$v = $row->xpath('//membernumber[. = "'.$MemberId.'"]');

That should put the double-quotes in for you...

On 15/09/10 09:33, Sridhar Pandurangiah wrote:
>
> -------- Original Message --------
> Subject: Re: Xpath arguments in variable
> From: php-general(a)garydjones.name (Gary)
> To:
> Date: Wed Sep 15 2010 13:34:11 GMT+0530 (IST)
>
> Whats wrong with
> $v = $row->xpath('//membernumber[. = ' . $MemberId . ']');
> ?
>
> Am I not understanding what you are trying to ask?
>
> --------------------
>
> I tried this but doesn't work. I guess the above statement is
> concatenating the entire string and the substitution isn't happening
>
> What I am trying to do is as follows
> $MemberId = 'A192';
> $v = $row->xpath('//membernumber[. = ' . $MemberId . ']');
>
> The $MemberId should be substituted with A192 and then the xpath query
> should be executed. The result should be that I locate the membernumber
> XML element that has the value A912.
>
> Best regards
>
> Sridhar
>
>
>> Sridhar Pandurangiah wrote:
>>> now I need to pass this value to XPath within a string variable say
>>>
>>> $v = $row->xpath('//membernumber[. = $MemberId]');
>>>
>>> But this doesnt work due to the quotes. What I intend PHP to do is to
>>> substitute the value for $MemberId and then execute the XPath query. I
>>> have grappled with it for a few days before posting this.
>>
>> Whats wrong with $v = $row->xpath('//membernumber[. = ' . $MemberId .
>> ']');
>> ?
>>
>> Am I not understanding what you are trying to ask?
>>


--
Peter Ford, Developer phone: 01580 893333 fax: 01580 893399
Justcroft International Ltd. www.justcroft.com
Justcroft House, High Street, Staplehurst, Kent TN12 0AH United Kingdom
Registered in England and Wales: 2297906
Registered office: Stag Gates House, 63/64 The Avenue, Southampton SO17 1XS