[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Move elements to preceding parent


Subject: Re: [xsl] Move elements to preceding parent
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Mon, 15 Jun 2009 15:23:48 +0200

Israel Viente wrote:

Can you please explain the idea of the line:
 <xsl:template match="p[preceding-sibling::p[1][span[@class ne 'chapter']
and not(matches(span[@class ne 'chapter'][last()], '[.?&quot;!]$'))]]"/>

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/


Current Thread
Keywords