Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

xpath find node that does not contain child

I'm trying to create some xpath that will find all a tags that do not contain img tags, so that something such as

<a href="http://aol.com">link</a> 

matches, but

<a href="http://yahoo.com"><img src="http://yahoo.com/logo.png"></a> 

does not.

Of course I could do this in a two-part search but I'm sure there must be some way to do this with xpath.

like image 899
Ben K. Avatar asked Mar 28 '11 19:03

Ben K.


People also ask

What is child :: In XPath?

As defined in the W3 XPath 1.0 Spec, " child::node() selects all the children of the context node, whatever their node type." This means that any element, text-node, comment-node and processing-instruction node children are selected by this node-test.

How do I select the first child in XPath?

The key part of this XPath is *[1] , which will select the node value of the first child of Department .

What is Dom XPath?

DOM (Document Object Model) is a representation of a document or document fragment consisting of XML nodes arranged as a tree. XPath is a syntax for expressing a navigation through a DOM to locate one or more nodes.


1 Answers

//a[not(img)] 

Try and avoid the // if you can, though. Also note this will only exclude as that directly contain imgs.

like image 125
AakashM Avatar answered Oct 10 '22 20:10

AakashM