How to use XPath contains() here?

xml, xpath

Solution

You are only looking at the first `li` child in the query you have instead of looking for any `li` child element that may contain the text, `'Model'`. What you need is a query like the following:

//ul[@class='featureList' and ./li[contains(.,'Model')]]

This query will give you the elements that have a `class` of `featureList` with one or more `li` children that contain the text, `'Model'`.

Problem

I'm trying to learn XPath. I looked at the other `contains()` examples around here, but nothing that uses an AND operator. I can't get this to work: ``` //ul[@class='featureList' and contains(li, 'Model')] ``` On: ``` ... <ul class="featureList"> <li><b>Type:</b> Clip Fan</li><li><b>Feature:</b> Air Moved: 65 ft. Amps: 1.1 Clip: Grips any surface up to 1.63" Plug: 3 prong grounded plug on heavy duty model Usage: Garage, Workshop, Dorm, Work-out room, Deck, Office & more.</li><li><b>Speed Setting:</b> 2 speeds</li><li><b>Color:</b> Black</li><li><b>Power Consumption:</b> 62 W</li><li><b>Height:</b> 14.5"</li><li><b>Width:</b> Grill Diameter: 9.5"</li><li><b>Length:</b> 11.5"</li> <li><b>Model #: </b>CR1-0081-06</li> <li><b>Item #: </b>N82E16896817007</li> <li><b>Return Policy: </b></li> </ul> ... ```

Original source

Related problems