Israel Viente wrote:
Can you please explain the idea of the line:
<xsl:template match="p[preceding-sibling::p[1][span[(_at_)class ne 'chapter']
and not(matches(span[(_at_)class ne 'chapter'][last()], '[.?"!]$'))]]"/>
Does it remove the p that has preceding sibling with no ending
character at the end of the last span?
Yes, that template matches p elements where the immediately preceding p
element is one with a span child where class is not 'chapter' and where
the last such span element does not end with one of those characters you
listed. As the template is empty it ensure that any such p elements are
not copied.
How can I remove the following:
1. extra xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" and
version="-//W3C//DTD XHTML 1.1//EN" inside html element.
2. extra profile="" in head element
3. extra xml:space="preserve" in p, span and br elements.
Unfortunately any attempts to transform a document referencing a DTD on
www.w3.org currently fail here with 503 HTTP errors so I can't test
myself. I would assume that the referenced DTD you have defines default
values for those attributes that the XML parser expands and that the
identity transformation copies. According to
http://www.saxonica.com/documentation/using-xsl/commandline.html
Saxon 9 has a command line option
-expand:off
to prevent that from happening so try that if you use Saxon.
--
Martin Honnen
http://msmvps.com/blogs/martin_honnen/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--