[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: Filtering, xslt 2.0
Am 10/31/2022 um 5:35 PM schrieb Dave Pawson dave.pawson@xxxxxxxxx:
On Mon, 31 Oct 2022 at 16:22, Martin Honnen martin.honnen@xxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
Am 10/31/2022 um 5:16 PM schrieb Dave Pawson dave.pawson@xxxxxxxxx:
Input xml contains
<data>
...
<membership>....</membership>
</data>
where membership can be one of a b c d
cmd line param
membership=a
could be membership=a,b,c
How to 'choose' only those matching the param values?
<xsl:template match="data">
<xsl:if test="$membership =./membership">
<xsl:message>
<xsl:value-of select='membership_type'/>
</xsl:message>
<xsl:apply-templates/>
</xsl:if>
..
How to pass a list, and then check for membership
of that list, one or more times?
I see two options, pass in a single string like you do and tokenize e.g.
tokenize($membership, ',') = membership
What's the command line then?
membership=a,b,c
I have literally tested now a
B membership=a,b,c
with Saxon HE 11 and the command line, both with Bash and with
Powershell, and the parameter can be processed as said with e.g.
B tokenize($membership, ',')
and you get a sequence of three strings (e.g. a, b, c).
or "a b c"
Saxon doesn't like that.
saxon ..... membership="R.A.O.B. Associate"
<xsl:if test="tokenize($membership',') =./membership">
Using Paid for saxon 9pe to produce op.xml
Unrecognized option: Associate
So space separated 'list' is wrong (somehow)
or use an XPath expression for the parameter with e.g. (Saxon 9/10/11, I
think)
?membership='a','b','c'
Where's this please Martin? In the match?
On the command line, you prefix the parameter name with a question mark
to indicate you provide an XPath expression on the right side of the "=".
I have tried now with Bash, you need an additional double quote wrapper e.g.
B ?membership="'a','b','c'"
then you have $membership in XSLT/XPath 2 and later as a sequence of
three strings (e.g. a, b, c)
(might need other/additional quotes, depending on the command shell), then
shell is bash
$membership = membership
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|