Subjects
Home
Xalan extension functions
Fomatting question serializing DOM with pretty print
xalan with pull parser
Cannot find the declaration
Apache Xalan drop support to run on JRE 1 1 x
Why does Doctype change processing of a document
Node set to XML string via Java extensions in Xalan J: possible?
Templates/Transformers + thread safety???
Problem evaluating xpath with muliple prefix with different namespace
remove an arbitrary attribute from xsl output
Xalan3 XSLT 2 0 XPath 2 0 support?
Problem using compiled translets with Xalan !!
Xalan and jstl 1 1 problem with transform tag
NullPointer in DOM2DTM getLocalName
URIResolvers base parameter with xsltc and cascaded imports
Performance problem for Xalan J on intel dual core
Standard libraries in JAXP?
Serializing a DOM tree to XML file, customize entities replacement
Library Conflict Involving BCEL Library
A question on how users are using <xsl:message >
Kevin Cormier as a new Apache Xalan J committer
Struggling to iterate over tokenized string
Xalan count() trouble
Problem with recursive xpath
Error when switching to java 1 5
document( ' ')
Problem with Xalan2 7 0 transformation
cr/lf options
entity encoded XML
can xalan transform 2 xml using one xslt?
Xalan J JIRA defect review Monday October 16, 2006 from 2:00 to 3:30 pm ED
xsl transform with cdata section elements
xslt parameters not expanded
Weird behavior of XPath evaluate()
How to avoid <xsl:message > instruction prints stylesheet file informations ?
Cannot find SimpleTransform subdirectory after installing Xalan J
recover from document not found exceptions
jdk1 5 and Xalan jar differences?
Performance Issue
Error/Bug adding floating point numbers
XPathAPI: eval exp using nodes with default namespace
modifying xalan to output invalid XML
NullPointerException
mege two separate xml nodes into one
Is this a XALAN document identification bug?
is StylesheetRoot really java io Serializable ?
transform() fails for DOMSource but succeeds for StreamSource
Thoughts on Transformer parameter passing
HELP, Xalan and jstl 1 1 problem with transformer
Problem with XPath namespace axis?
string utils:replace deleting search string if replacement string is an HTML
help with enumeration values pls
xalan 2 5 1 vs 2 7 performance question
How to insert/update in XML document
HTML Serialization and Handling of Ampersands in HREF Attributes
XHTML link tag stripping
SystemId Unknown; Line #24; Column #49; java lang NullPointerException
xpath text() help
Apostrophe problem with xalan 2 7 0
How to set variables in XML document?
Links
Home
Oracle database error code ...
 
Search:  
Power your search with and, or, +, -, or "some phrase" operators.
Re: Problem with org.apache.xpath.XPathAPI,
   org.apache.xpath.NodeSet

Re: Problem with org.apache.xpath.XPathAPI,
   org.apache.xpath.NodeSet

2003-02-18       - By Simon Kitching

Hi Werner,

Am I right in believing that your extension method is doing the
following?
(a) taking a node from the source document
(b) trying to delete some of its child nodes
(c) returning the node as the output of the extension method

The XSLT model is one of taking a CONSTANT input tree and generating a
NEW output tree. This is particularly important in Xalan, where a
special high-performance DOM called the DTM is used, which is read-only.
Normally, DOM implementations can't be read-only but because this is
XSLT, and XSLT doesn't modify the input, this optimisation can be
performed.

When writing an extension method returning nodes, you should return NEW
nodes, not nodes from the input document. So rather than trying to
delete nodes, you should walk the tree of source nodes (starting at the
one passed to the extension method), making copies of the ones you want
in the output and ignoring the ones you don't want in the output. Then
return the NEW tree of nodes.

To create a new node, you can use a "dummy" DOM object; the nodes you
return don't need to be associated with any particular DOM.

Note: I am not a Xalan expert; all the above is subject to correction by
the real experts....

Regards,

Simon

On Tue, 2003-02-18 at 21:20, Werner Koch wrote:
> Hi all,
>
> I have a problem using the XPathAPI class, and at the moment, I am
> completely stumped (didn't yet consult the sources too much).
> Here is my case:
> - I run transformations with xalan (file based xml/xslt).
> - I have a sorting/restricting problem, so I wrote a small java extension.
> - When I base my sorting of the nodeset I get from the extension call by
> directly navigating the DOM, then I get the expected results (even here with
> a problem when I cut away nodes of org.apache.xpath.NodeSet with
> removeElementAt, because the nodeset in the XSLT will still show the
> original, larger number; I could resolve this by returning a new NodeSet
> where I just copied the wanted Nodes into).
> - Because of generalization issues, I decided to base my sorting on a value
> in my nodeset selected by an XPath, which I also receive from the call in
> the stylesheeet. So I get a NodeSet from the stylesheet, take the Node from
> this I like to handle, and try to XPathAPI.selectSingleNode(aNode, aPath)
> select the wanted information needed for my sort. This unfortunately never
> works for me, because the NodeIterator inside this call to XPathAPI stumbles
> over a NullPointerException when it tries to return the first node by
> executing nextNode(). This holds even true when I execute an XPath query of
> '.' on an Element Node with a at least one TextNode attached.
>
>   Node result = XPathAPI.selectSingleNode(nodeI, ".").nextNode();
>
> As I said, the nodeI is an Element node with a Text Node attached (I do
> something like my-node-set.item(i) to set nodeI, where my-node-set is the
> one I got from the stylesheet).
>
> If I try out other XPaths than '.', I even get 'Unknown XPath errors', so I
> think, I am somehow completely off track.
>
> I use Xalan 2.4.1 and Java 1.3.1_06-b01
>
> Every help is very much appreciated!
>
> Unfortunately, I mistakenly posted __THIS__ already on the xalan developers
> list, on which I am even not subscribed, sorry for that.
>
> Best regards,     Werner
>
>
> Innovation Process Technology Inc.
> Werner Koch
> Aarbergergasse 56
> CH - 3011 Bern
>
> werner.koch@(protected)
>
> Phone:  +41 31 311 12 23
> Fax:    +41 31 311 12 24
> Mobile: +41 78 648 56 44
>
> http://www.ipt.ch
>
>