Re: Re: DOMDocument getElementsByAttribute ??

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Mar 9, 2009 at 8:24 PM, Nathan Rixham <nrixham@xxxxxxxxx> wrote:
> Michael A. Peters wrote:
>>
>> Nathan Rixham wrote:
>>>
>>> Michael A. Peters wrote:
>>>>
>>>> Seems like such a function does not exist in php.
>>>> I can write my own function that does it using
>>>> DOMElement->hasAttribute() - but I'm not sure how to get an array of every
>>>> element in the DOM to test them for the attribute.
>>>>
>>>> Any hints?
>>>>
>>>> I'm sure it's simple, I'm just not seeing the function that does it.
>>>
>>> DOMXPath :)
>>>
>>
>> I figured it out -
>>
>> $document->getElementsByTagName("*");
>>
>> seems to work just fine.
>>
>> I do need to find out more about XPath - unfortunately reading the
>> examples that are out in the wild is troublesome because it seems 95% of
>> them involve the deprecated dom model from pre php 5, so to make sense of
>> them I would have to port the examples to php5 DOMDocument first.
>>
>
> Xpath is easier than most think.. for example
>
> //p[@class='red']
>
> that's all p tags with a class of "red"
>
> infact.. http://www.w3schools.com/XPath/xpath_syntax.asp covers about
> everything you'll need for normal stuff :)
>

Well, I thought so too. That was until I had to use xpath on a few
documents that used namespaces. Try this with a strict xhtml document
and all of a sudden your simple xpath query becomes something like
this:

//*[namespace-uri()='http://www.w3.org/1999/xhtml' and local-name() =
'p' and @class='red']

Although, for the original question, I believe something like this
would still work (unless the attributes themselves are namespaced):

//*[@someattribute!='']

Andrew

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux