Re: [xsl] Use XSLT to check a bunch of XHTML files for well-formedness?

Subject: Re: [xsl] Use XSLT to check a bunch of XHTML files for well-formedness?
From: "BR Chrisman brchrisman@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 16 Feb 2021 20:58:33 -0000
if you're on a unix/linux, often you can use a fairly ubiquitous tool 'xmllint'
in bash:
for i in *.xhtml; do
  xmllint $i >& /dev/null || echo "$i not a well-formed document."
done

On Tue, Feb 16, 2021 at 12:53 PM Roger L Costello costello@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Hi Folks,
>
> I have a folder containing a large number of XHTML files.
>
> I want to know: for each file, is it well-formed?
>
> What is the easiest and fastest way to see if each file is well-formed?
>
> My thinking has been to create a super-simple XSLT program:
>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>                           xmlns:xs="http://www.w3.org/2001/XMLSchema";
>                          exclude-result-prefixes="xs"
>                          version="2.0">
>
>     <xsl:template match="*" />
>
> </xsl:stylesheet>
>
> and then run the XSLT on each XHTML file.
>
> I have a command file (.bat file) that loops over each XHTML file and runs the XSLT:
>
> for %%i in (xhtml\*.xhtml) do (
> echo %%i
> java -jar saxon-ee-10.1.jar %%i -xsl:test-well-formedness.xsl -o:well-formedness\%%i
> )
>
> That works, but it's pretty slow.
>
> So, I looked into compiling my XSLT program:
>
> On this SAXON web page it talks about Compiling a Stylesheet:
>
> https://www.saxonica.com/html/documentation/using-xsl/compiling.html
>
> On the page it says:
>
>         In simple cases, you can exploit the ability to process an
>         entire directory of source files using a single invocation
>         of the Transform command on the command line.
>
> That sounds perfect.
>
> But the web page, as far as I can tell, doesn't describe how to "use the Transform command to process an entire directory of source files."
>
> What do you recommend?
>
> /Roger

Current Thread