Thank you for the reply. However, using spaces with the word or substring
selectors throws a fatal error.
For now, I'm using the word selector with the substring of the attribute
value.

On Thu, Oct 16, 2008 at 4:27 AM, Matthew Weier O'Phinney
<[EMAIL PROTECTED]>wrote:

> -- Mon Zafra <[EMAIL PROTECTED]> wrote
> (on Thursday, 16 October 2008, 03:50 AM +0800):
> > Hi all,
> >
> > How do I select a node with an attribute with spaces? This code:
> >
> > require_once 'Zend/Dom/Query.php';
> > $val = 'foo bar';
> > $html = '<input type="text" value="' . $val . '" />';
> >
> > $dom = new Zend_Dom_Query($html);
> > $res = $dom->query('input[value="' . $val . '"]');
> > echo(count($res));
> >
> > returns 0. I need this to make my controller tests pass.
>
> You need to use either a word match or a substring match:
>
>    // word match:
>    $res = $dom->query('input[value~="foo"]');
>
>    // substring match:
>    $res = $dom->query('input[value*="foo bar"]');
>
> The first will look for "foo" anywhere in the attribute. The second
> looks for "foo bar" anywhere in the attribute.
>
> Strict comparisons often fail because, to be able to do word or
> substring matches, we actually have to fudge a little and rewrite the
> attribute values to app/prepend empty strings.
>
> --
> Matthew Weier O'Phinney
> Software Architect       | [EMAIL PROTECTED]
> Zend Framework           | http://framework.zend.com/
>

Reply via email to