OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: [xml-dev] XPath question (in .NET)

[ 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






 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS