Re: Parsing XML files as text with collection()
Michael Kay <mike-JkSD5nQpfvpWk0Htik3J/[email protected]> Fri, 9 Oct 2020 20:43:58 +0100
| Newsgroups | gmane.text.xml.saxon.help |
|---|---|
| Message-ID | <[email protected]> |
This is very much the kind of use case for which uri-collection was introduced. Michael Kay Saxonica > On 9 Oct 2020, at 15:24, Imsieke, Gerrit, le-tex <[email protected]> wrote: > > Thanks Martin, I hadn't thought of uri-collection(). I'll use the approach that you suggested. > > On 09.10.2020 16:17, Martin Honnen wrote: >> Am 09.10.2020 um 14:31 schrieb Imsieke, Gerrit, le-tex: >>> I want a recursive directory scan to read in all XML files as unparsed >>> text. Then I want to remove the DOCTYPE declaration and named entities >>> with replace(). Then I want to parse them with parse-xml(). The reason >>> is that all kinds of DTDs at different locations will be referred, but I >>> don't have access to these DTDs, and they don't matter for the purpose >>> of my analysis. >>> >>> The documentation says that Saxon will use heuristics to infer the type >>> of file. How can I force Saxon to read every *.xml file, although it may >>> appear as an XML document, as text? >> With Saxon (tested with HE 10.2 Java) from the command line I have no >> problems to use uri-collection and unparsed-text in XQuery or XSLT e.g. >> <?xml version="1.0" encoding="UTF-8"?> >> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >> xmlns:xs="http://www.w3.org/2001/XMLSchema" >> exclude-result-prefixes="#all" version="3.0"> >> <xsl:param name="uri" as="xs:string" >> >file:/C:/SomePath/SomeFolder/</xsl:param> >> <xsl:param name="pattern" as="xs:string"><![CDATA[<\?xml >> .*?>\s*<!DOCTYPE .*?>]]></xsl:param> >> <xsl:template name="xsl:initial-template"> >> <xsl:sequence >> select="uri-collection($uri || '?select=*.xml') ! >> (unparsed-text(.) => replace($pattern, '') => parse-xml())" >> /> >> </xsl:template> >> </xsl:stylesheet> > > > _______________________________________________ > saxon-help mailing list archived at http://saxon.markmail.org/ > [email protected] > https://lists.sourceforge.net/lists/listinfo/saxon-help _______________________________________________ saxon-help mailing list archived at http://saxon.markmail.org/ [email protected] https://lists.sourceforge.net/lists/listinfo/saxon-help