Conditional actions in XSL?
Peter Murray-Rust
peter at ursus.demon.co.uk
Wed Jan 28 12:26:46 GMT 1998
[Forwarded to the list from Dr. Zheng Min]
>>
>>>I played with XSL and MSXSL in the last few days. One thing I'm trying to
>>do
>>>is to drop all the elements with date attribute < a specified date.
>>However,
>>>with my understanding of XSL, I couldn't figure out a good way to do this.
>>>
>>>The normal ways, I can think of, to do this are either:
>>>
>>>1. XSL supports conditional actions, such as:
>>> <target-element ...>
>>> if condition
>>> <children/>
>>> else
>>> do nothing
>>> end
>>>(I don't believe XSL has such a feature, unless I overlooked something.
>The
>>>only thing I see similar is the attribute rules but it can only be
>>>'=Value'), or
>>>
>>>2. in the scripts, one can write:
>>> function filter (e) {
>>> if calc(attribute) then
>>> do something
>>> <children/>
>>> else
>>> do something else
>>> end
>>> and in XSL body, one can use the following rules to filter output
>>>without skipping (or including all) its descendants:
>>> <target-element/>
>>> <eval>filter(this)</eval>
>>>
>>>There is a "hacking" way I can think of, but unfortunately, I can't test
>it
>>>because MSXSL doesn't seem to support 'mode' yet. Anyways, the 'hacking'
>>I'm
>>>trying to do it to use something like:
>>> function check(e) {
>>> ......
>>> } /* return true or false */
>>> .......
>>> <rule>
>>> <target-element/>
>>> <children mode="=check(this)"/>
>>> </rule>
>>>
>>> <rule mode="true">
>>> .........
>>> </rule>
>>>
>>> <rule mode="false">
>>> ......
>>> </rule>
>>>
>>>I'm not sure if this works or not (it doesn't work with current MSXSL, at
>>>least).
>>>
>>>Can any knowledgeable people help me clarify the followings:
>>>
>>>1. Does XSL supports either the above 2 scenarios (i.e. condition in
>action
>>>rules or processing descendants in scripts). I may overlook something.
>>>
>>>2. If neither of above is available in XSL, what are the good work around?
>>>Will my 'hacking' work?
>>>
>>>Conditional action is a common feature. Very often an SGML/XML application
>>>needs to filter certain elements based on calculation (of attribute
>>values).
>>>IF XSL can't support this, I would say something essential is missing from
>>>XSL.
>>>
>>>Any comments?
>>>
>>>Thanks,
>>>Min
>>>
>>
>>
>>
>
>
Peter Murray-Rust, Director Virtual School of Molecular Sciences, domestic
net connection
VSMS http://www.nottingham.ac.uk/vsms, Virtual Hyperglossary
http://www.venus.co.uk/vhg
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev
mailing list