xsl-list
[Top] [All Lists]

Re: [xsl] XPath to get node with sons with specific text

2009-08-10 21:41:01
Thanks for the help guys, works great! even works with attributes ;)


On Mon, Aug 10, 2009 at 9:00 PM, Michael Kay<mike(_at_)saxonica(_dot_)com> 
wrote:
Contact[contains(Name,'test1')]

Depending on where ever your context node is.


Or perhaps

  /List/Contact[starts-with(Name,'test1')]

if starting from the root.

Note that an XPath expression returns a set of nodes - this expression will
return two Contact nodes. It does not return the children of the Contact
nodes directly. But the children are still there - you can navigate from the
selected nodes to their children, their ancestors, or anywhere else. So for
example if in XSLT you do

<xsl:copy-of select="/List/Contact[contains(Name,'test1')]"/>

you will get copies of the subtrees rooted at these Contact nodes.

Regards,

Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay




-------Original Message-------

From: Andy Kohn
Date: 8/10/2009 9:34:48 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] XPath to get node with sons with specific text

Using XPath, is it possible for me to select a whole branch
by Searching for the first child to contain some specific text.

For example for the following XML:

<List>
<Contact>
<Name>test1test</Test>
<Data>sample data</Data>
<Data>sample</Data>
<Data>sample 123</Data>
</Contact>
<Contact>
<Name>test133</Test>
<Data>sample data</Data>
</Contact>
<Contact>
<Name>test2test</Test>
<Data>sample data</Data>
<Data>sample</Data>
<Data>sample 123</Data>
</Contact>
</List>

If I search for "test1" I want from the Xpath to return the
first <Contact> and the second <Contact>, including all child
nodes (<Name> And <Data>):

<Contact>
<Name>test1test</Test>
<Data>sample data</Data>
<Data>sample</Data>
<Data>sample 123</Data>
</Contact>
<Contact>
<Name>test133</Test>
<Data>sample data</Data>
</Contact>

Something like:
//Name[contains(.,'Ab')]
But this returns only the Name node, and not all the childs.

Thanks,

Andy.

--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
Or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>