[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] XPath to match attribute with multiple values...?


Subject: Re: [xsl] XPath to match attribute with multiple values...?
From: Matt Dittbenner <mbditt@xxxxxxxxxxxxxxxxx>
Date: Wed, 10 Nov 2004 12:56:17 -0600

Let me show another example.....

<package name="product1" categories="personal small_business"/>
<package name="product2" categories="business enterprise" />

In this example I want to match packages that belong to the category "business" exclusively (not including small business). Using the contains function will return both product1 and product2, which is not the data I am looking for.

Thanks for such fast responses!

Emmanouil Batsis wrote:

An attribute value is atomic. You can look whether it contains a substring using the contains(a, b) function. It will return true if a contains b.

hth,

MAnos

Matt Dittbenner wrote:

Hey there,

I am having trouble finding any information on this. I have some XML data with an attribute that has a space-delimited list inside of it (kind of like putting multiple classes on an element in html for use by CSS). How can I use XPath to match the nodes with attributes that contain a specific value. I think the best way to describe this would be with an example:

<data>
   <item name="a" attribute="value value1"/>
   <item name="b" attribute="value2 value1"/>
   <item name="c" attribute="value1 value3"/>
   <item name="d" attribute="value"/>
</data>

If I want to match the elements where "attribute" has one of its values "value1", I want item "a", item "b" and item "c". But if I want the elements where "attribute" has one of its values "value", I should get item "a" and item "d". If you use the contains() string function, you would obviously match all items, which is not what I want.

As I said before CSS allows you to create styles that apply to a class, and on your html, you can just set class="class1 class2 class3". That way ".class1", ".class2", ".class3", and ".class1.class2" are all separate styles! I don't need this extent of functionality, but it leads me to believe something like this just might exist in XPath.

Any ideas?

Thanks in advance,
   Matt


Current Thread
Keywords