This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: XPath against a Document


Just for comparison, in case anyone is interested, here's the equivalent in
Saxon:

public static final NodeSetValue getNodesByXPath(NodeInfo baseNode, String
sPath)
throws SAXException {
	Expression exp = Expression.make(sPath);
	Context c = new Context();
	c.setCurrent(baseNode);
	c.setPosition(1);
	c.setLast(1);
	return (NodeSetValue)exp.evaluate(c);
}

If the expression uses variables or namespace prefixes (not to mention keys
or decimal formats) you need to do a bit more work in setting up the
context.

Mike Kay

> -----Original Message-----
> From: Timm, Sean [mailto:STimm@MAILGO.com]
> Sent: 15 February 2000 21:44
> To: 'xsl-list@mulberrytech.com'
> Subject: RE: XPath against a Document
> 
> 
>     /**
>      * This method searches for a specific set of nodes based 
> on the XPath
>      * statement passed into it.
>      * 
>      * @param baseNode Base node to process XPath statement against
>      * @param sPath XPath statement to execute against baseNode
>      * @return NodeList NodeList populated by nodes that match XPath
> expression
>      */
>     public static final NodeList getNodesByXPath(Node baseNode, String
> sPath)
>         throws Exception
>     {
>         String parserLiaisonClassName = Constants.LIAISON_CLASS;
>         Class parserLiaisonClass = 
> Class.forName(parserLiaisonClassName);
>         Constructor parserLiaisonCtor =
> parserLiaisonClass.getConstructor(null);
>         XMLParserLiaison parserLiaison
>         = (XMLParserLiaison)parserLiaisonCtor.newInstance(null);     
> 
>         // Create a XPath parser.
>         XPathProcessorImpl parser = new XPathProcessorImpl();
>               
>         // Create the XPath object.
>         XPath xpath = new XPath();
>               
>         // Parse the xpath
>         parser.initXPath(xpath, sPath, null);
>         XObject xobj = xpath.execute(parserLiaison, baseNode, null);
> 
>         return xobj.nodeset();
>     }
> 
> - Sean T.
> 
> -----Original Message-----
> From: Ben Bertola [mailto:bbertola@promedix.com]
> Sent: Tuesday, February 15, 2000 3:49 PM
> To: xsl-list@mulberrytech.com
> Subject: Re: XPath against a Document
> 
> 
> I have this same question, this would be great to know if 
> it's possible.
> Thanks,
> Ben
> 
> 
> Paul Levin wrote:
> 
> > Using Xerces and Xalan;
> >     given a Document (i.e. DocumentImpl) and given a String 
> containing
> > an XPath expression, I would like to apply the expression 
> against the
> > document to obtain the NodeList that matchs the expression.  Is this
> > possible ?
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]