Re: [xsl] XML to text - converting DITA to asciidoc

Subject: Re: [xsl] XML to text - converting DITA to asciidoc
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 9 Dec 2023 18:45:30 -0000
On 09/12/2023 19:04, dvint@xxxxxxxxx wrote:
I'm trying to process complex inline DITA content to text and at the
same time both process inline markup and strip excess whitespace that
comes from having the content in a pretty printed format.

I suppose a quick fix might be to go through and un=pretty the XML in
a pre-pass. Anyone got something that does that?

Currently, I'm trying to process these files as they are in XML and
make nice text blocks in the converted content. I know that
normalize-space() will strip the space from text, but it doesn't allow
processing of the markup at the same time.

So if I have a call like

<xsl:apply-templates/>

I get this when processing an <li>

======
* link:lnu1689300505181.dita[Step
B B B B B B B B B B B B B B B B B B B  3]

* link:txr1689300527868.dita[Step
B B B B B B B B B B B B B B B B B B B B B B B  4]

* Complete!





* link:fkt1688690571816.dita[Show me the primary landing
B B B B B B B B B B B B B B B B B B B B B B B B B B B  page]

* link:fto1689306405929.dita[Show me
B B B B B B B B B B B B B B B B B B B B B B B B B B B  tiles without
descriptions]







* link:https://example.com[Sample app]





* B B B B B B B B B B B B B B B B B B B link:https://example.com[Security
Key]

======


If I change that call to

<xsl:apply-templates select="normalize-space(.)"/>

I get clean text, but now I'm missing the processing of the inline
elements like these <xref>s



Either strip space from the input during input tree building with e.g.


B <xsl:strip-space elements="*"/>

or, if you want to normalize space in text nodes, use e.g.

B <xsl:template match="text()">

B B B <xsl:value-of select="normalize-space()"/>

B </xsl:template>


That way your xsl:apply-templates will process any inline elements with matching templates and the encountered text nodes with above template.

Current Thread