[
Lists Home |
Date Index |
Thread Index
]
At 09:04 PM 12/13/2005, Paul Popiel wrote:
>I have tried this previously, but strangely it only seems to work on the
>first attribute.
>e.g. searching on 'element' will return both nodes. searching on 'attribute'
>(part of value of 2nd attribute in the child node) nothing is returned.
Oh, something like this then:
//*[@*[contains(.,'attribute')]]
>also, i dont want the search to be restricted to just the attribute values,
>but the elements xml string as a whole.
Well, you can add conditions as you wish...
//*[contains(.,'some text') or @*[contains(.,'some text')]]
>-----Original Message-----
>From: Carlo Innocenti [mailto:minollo@minollo.com]
>Sent: Wednesday, 14 December 2005 9:58 AM
>To: Paul Popiel
>Cc: xml-dev@lists.xml.org
>Subject: RE: [xml-dev] XPath question (in .NET)
>
>
>
> >...
> > <?xml version="1.0"?>
> > <Test Name="Im a parent element">
> > <Child Name="Im a child element" Attribute="another
> >attribute"/>
> > </Test>
> >
> >...
> > XmlNodeList foundNodes = xmlDoc.SelectNodes("//*[contains(.,
> >'element')]");
>
>Your query is matching elements containing "element" in their values;
>but your strings are associated to attributes, not to text nodes.
>Changing the query to:
>
>"//@*[contains(.,'element')]"
>
>...will return two attributes. If you need the elements containing at
>least one attribute which contains that string, then you need:
>
>"//*[contains(@*,'element')]"
>
>...you get the idea.
>
>Minollo
>http://www.stylusstudio.com
|