Subject: Re: [xsl] XPath to match attribute with multiple values...? From: Matt Dittbenner <mbditt@xxxxxxxxxxxxxxxxx> Date: Wed, 10 Nov 2004 13:32:34 -0600 |
In 2.0 if you have a schema that describes the attribute as list-valued then
contains(@categories, "business")
will do the right thing.
If you don't have a schema, then
contains(tokenize(@categories, '\s'), "business")
will do the right thing.
With 1.0, it's much harder.
Michael Kay http://www.saxonica.com/
-----Original Message-----
From: Emmanouil Batsis [mailto:Emmanouil.Batsis@xxxxxxxxxxx] Sent: 10 November 2004 19:03
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] XPath to match attribute with multiple values...?
Matt Dittbenner wrote:
Let me show another example.....category
<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
"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.Ahhhh, right; sorry for the too-quick reply. I guess you need to work a little more by matching the nodes with contains, then validating them in a template with the substring functions. Check out
http://www.w3.org/TR/xpath#section-String-Functions
for reference. Dunno if an extention exists for what you want (ie match-word or something), but i guess it checking out EXSLT would not take too much time.
hth,
Manos
Thanks for such fast responses!return true if a
Emmanouil Batsis wrote:
An attribute value is atomic. You can look whether it contains a substring using the contains(a, b) function. It will
have some XMLcontains b.
hth,
MAnos
Matt Dittbenner wrote:
Hey there,
I am having trouble finding any information on this. I
inside of itdata with an attribute that has a space-delimited list
html for use(kind of like putting multiple classes on an element in
attributes thatby CSS). How can I use XPath to match the nodes with
"value", Icontain 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
contains() stringshould get item "a" and item "d". If you use the
not what Ifunction, you would obviously match all items, which is
this extentwant.
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
of functionality, but it leads me to believe something like this just might exist in XPath.
Any ideas?
Thanks in advance, Matt
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] XPath to match attribute , Michael Kay | Thread | RE: [xsl] XPath to match attribute , George James |
RE: [xsl] XPath to match attribute , Michael Kay | Date | Re: [xsl] variable question, Bruce D'Arcus |
Month |