[
Lists Home |
Date Index |
Thread Index
]
that works nicely, thanks Carlo.
-----Original Message-----
From: Carlo Innocenti [mailto:minollo@minollo.com]
Sent: Wednesday, 14 December 2005 10:50 AM
To: Paul Popiel
Cc: 'xml-dev@lists.xml.org'
Subject: RE: [xml-dev] XPath question (in .NET)
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
**********************************************************************
This email is confidential. If you are not the intended recipient,
you must not copy, distribute, disclose or otherwise use the
information contained in it. If you have received this email in
error, please tell us immediately by return email or by contacting
us on (+61 8) 9209 6900 and delete the document. Email may
be susceptible to data corruption, interception and unauthorised
amendment. Advanced Engine Components Ltd is not
responsible for any changes made to a document other than
those made by Advanced Engine Components Ltd, or for the
effect of the changes on the document's meaning.
You must scan this email and any attachments for viruses.
Advanced Engine Components Ltd accepts no liability for any
loss, damage or consequence, whether caused by our own
negligence or not, resulting directly or indirectly from your
receipt of this email or the use of any attachments.
**********************************************************************
|