Re: [xsl] Suggestions for filtering algorithm

Subject: Re: [xsl] Suggestions for filtering algorithm
From: "Rick Quatro rick@xxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 18 Dec 2019 16:32:55 -0000
Thank you Martin. That is excellent. I have never used the "satisfies"
expression, but I can see that this is a perfect application for it. Thanks


From: Martin Honnen martin.honnen@xxxxxx
Sent: Wednesday, December 18, 2019 11:12 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Suggestions for filtering algorithm


Am 18.12.2019 um 04:08 schrieb Rick Quatro rick@xxxxxxxxxxxxxx
<mailto:rick@xxxxxxxxxxxxxx> :

Hi All,


I have an XML file with parts similar to this:


<?xml version="1.0" encoding="UTF-8"?>


    <part no="123456" desc="HOSE KIT"/>

    <part no="234567" desc="HOSE FITTINGS"/>

    <part no="345678" desc="HOSE SEGMENT"/>



When processing the parts with XSLT 2, I want to filter out some of the
parts based on words or phrases that the user supplies. I was thinking of a
lookup XML file that they could maintain:


<?xml version="1.0" encoding="UTF-8"?>






This is a roughed out stylesheet, but I am not sure the best way to use the
look up. I could convert the <exclude> elements to a regular expression and
apply it to the @desc attribute, but I am not sure if there is a better
approach that I am missing.


<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl= <>

    xmlns:xs= <>




    <xsl:variable name="exclude" select="doc('excludes.xml')"/>


    <xsl:template match="/parts">




If you add an empty template

  <xsl:template match="part[some $exclude in $exclude/exclude/exclude
satisifes matches(@desc, $exclude) ]"/>

then any matched "part"s will not be processed, for the rest you can set up
the identity transformation. Or you can of course use any such predicate in
an apply-templates e.g.

  <xsl:apply-templates select="part[not(some $exclude in
$exclude/exclude/exclude satisifes matches(@desc, $exclude))]"/>




XSL-List info and archive <>  

 <> EasyUnsubscribe (
<> by email) 

Current Thread