[
https://issues.apache.org/jira/browse/XALANJ-2473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12782744#action_12782744
]
Henry Zongaro commented on XALANJ-2473:
---------------------------------------
Hi, Martin. Your patch for this bug report looks correct. However, I would
recommend trying to delegate the implementation of getTextContent to the
underlying DTM implementation instead of doing a recursive walk that ultimately
gets the string value of each text or CData section node and concatenates them
all together. If the DTMNodeProxy wraps a node from a SAX2DTM instance, in
particular, the implementation can take advantage of the FastStringBuffer that
stores the character content of the SAX2DTM implementation. (Take a look at
SAX2DTM.getStringValue(int) to understand how that might be much faster.)
> DTMNodeProxy.getTextContent() does not return text content of child nodes
> -------------------------------------------------------------------------
>
> Key: XALANJ-2473
> URL: https://issues.apache.org/jira/browse/XALANJ-2473
> Project: XalanJ2
> Issue Type: Bug
> Security Level: No security risk; visible to anyone(Ordinary problems in
> Xalan projects. Anybody can view the issue.)
> Components: DTM
> Affects Versions: 2.7.1
> Environment: Java 1.5
> Reporter: Christian Schröder
> Attachments: XALANJ-2473-getTextContent.patch, XALANJ_2473_Test1.java
>
>
> If a java extension functions takes an org.w3c.dom.Node as an argument then
> it gets an org.apache.xml.dtm.ref.DTMNodeProxy object.
> The "getTextContent" method of this object returns null if the node is an
> element node, although according to the java 1.5 documentation, the
> "getTextContent" method should return the "concatenation of the textContent
> attribute value of every child node".
> This is the implementation:
> public String getTextContent() throws DOMException {
> return getNodeValue(); // overriden in some subclasses
> }
> Of course, "getNodeValue" returns null if the node is an element node, but I
> think this is not the way "getTextContent" should be implemented.
> The following code can be used to reproduce this error:
> XSLT:
> <xsl:value-of select="src:myFunction(foo)"/>
> XML:
> <foo>Some Text</foo>
> Java:
> public static String myFunction(org.w3c.dom.Node n) {
> String s = n.getTextContent();
> // s should be "Some Text", but is actually null.
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]