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
|