You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xalan.apache.org by "Karr, David" <da...@wamu.net> on 2005/11/01 21:13:20 UTC

Defining extension function that returns a list of objects (regexp groups)

I may be jumping the gun on this, but I'm trying to figure out how I can
write a Java extension function that returns a list of objects (list of
strings, being regexp group values), and how to process that list in a
stylesheet.  I don't see exactly how to do this from the Xalan
documentation.

I'm investigating this because I think I can't use the EXSLT
regexp:match function in WebLogic running JDK 1.4.2 (the EXSLT docs seem
to say this, and it fails when I run it in Stylus Studio).

Re: Defining extension function that returns a list of objects (regexp groups)

Posted by John Gentilin <ge...@eyecatching.com>.
David,

Here is a quick adaption of some code I use that bundles a list of 
strings into
a NodeSet of text nodes.  It makes for quick XSL processing since they are
just a list of text nodes, there is minimal XPath processing.

HTH
John G

<xsl:template match="foo">
   <xsl:variable name="myStrings" select="myNS:getStrings()"/>
   If there are no strings, NULL is an easy test.
   <xsl:if test="$myStrings">
      <xsl:for-each select="$myStrings">
          The current context is the current string in the list
       </xsl:for-each>
   </xsl:if>
</xsl:template>

public NodeSet getStrings()
{
try
{
   NodeSet resultSet = new NodSet();

   Document lDoc = null;
   Iterator i = stringList():
   // You need to create a new document here so you can generate nodes.
   // At least this is the easiest way I have found...
    if (i.hasNext()) lDoc = getDocBuilder().newDocument();
    while(i.hasNext())
   {
        String name = (String) i.next();
        resultSet.addNode(lDoc.createTextNode(name));
   }
     
   return resultSet;
 }
 catch(Exception e)
 {
   return null;
  }

Karr, David wrote:

>I may be jumping the gun on this, but I'm trying to figure out how I can
>write a Java extension function that returns a list of objects (list of
>strings, being regexp group values), and how to process that list in a
>stylesheet.  I don't see exactly how to do this from the Xalan
>documentation.
>
>I'm investigating this because I think I can't use the EXSLT
>regexp:match function in WebLogic running JDK 1.4.2 (the EXSLT docs seem
>to say this, and it fails when I run it in Stylus Studio).
>  
>


-- 
--------------------------------------
John Gentilin
Eye Catching Solutions Inc.
18314 Carlwyn Drive
Castro Valley CA 94546

    Contact Info
gentijo@eyecatching.com
Ca Office 1-510-881-4821
NJ Office 1-732-422-4917