- From: Andreas Mixich <mixich.andreas@gmail.com>
- Date: Thu, 9 Nov 2017 23:14:02 +0100
- To: XProc Dev <xproc-dev@w3.org>
Hello, this is driving me nuts: I want to * create a main document (ENML namespace) on the default input port via `p:inline` * load an HTML5 file from disk & convert the HTML5 via Tidy to XHTML via my own `ax:tidy` step * apply a stylesheet on this XHTML, which extracts (and passes back, encapsulated in a `c:result`) a sorted nodeset * insert this sorted nodeset (without the `c:result`[1]) into the main ENML document, via `p:insert` However, the result I get is this: <?xml version="1.0" encoding="UTF-8"?> <en-note xmlns="http://xml.evernote.com/pub/enml2.dtd"> <div/> </en-note> It should be (abbreviated here) like this: <?xml version="1.0" encoding="UTF-8"?> <en-note xmlns="http://xml.evernote.com/pub/enml2.dtd"> <div> <ul> <li style="list-style-type: none;">1nsane</li> <li style="list-style-type: none;">Advent Rising</li> <li style="list-style-type: none;">Age of Wonders</li> <li style="list-style-type: none;">Age of Wonders 2: The Wizard's Throne</li> </ul> </div> </en-note> The XProc, I use, is this, running under XML Calabash (1.1.16-97): <?xml version="1.0" encoding="UTF-8"?> <p:declare-step name="main" xmlns:p="http://www.w3.org/ns/xproc" xmlns:c="http://www.w3.org/ns/xproc-step" xmlns:ax="http://codeblocker.org/ns/xproc-amix" xmlns="http://xml.evernote.com/pub/enml2.dtd" exclude-inline-prefixes="#all" version="1.0"> <p:serialization port="result" method="xml" indent="true" encoding="UTF-8" omit-xml-declaration="false"/> <p:input port="source" primary="true" kind="document"> <p:inline> <en-note xmlns="http://xml.evernote.com/pub/enml2.dtd"><div></div></en-note> </p:inline> </p:input> <p:output port="result" primary="true"/> <p:declare-step name="tidy" type="ax:tidy"> <p:input port="source" kind="document" primary="true" sequence="false"/> <p:output port="result" primary="true" sequence="false"/> <p:exec name="tidy-exec" command="C:\Cygwin\bin\tidy.exe" source-is-xml="false" result-is-xml="true" wrap-result-lines="false"> <p:with-option name="args" select="' --quiet yes --show-warnings no --output-xhtml yes --bare yes --doctype loose --numeric-entities yes --char-encoding utf8'"/> </p:exec> <p:unwrap match="c:result"/> </p:declare-step> <ax:tidy name="tidy-gog"> <p:input port="source"> <p:data href="../MediaLibrary/sources/gog/mygog.html"/> </p:input> </ax:tidy> <p:xslt name="sort-gog"> <p:input port="source"/> <p:input port="parameters"><p:empty/></p:input> <p:input port="stylesheet"> <p:document href="gog.xsl"/> </p:input> </p:xslt> <p:insert name="insertGog" match="/en-note/div" position="last-child"> <p:input port="source"> <p:pipe port="source" step="main"/> </p:input> <p:input port="insertion"> <p:pipe port="result" step="sort-gog"/> </p:input> </p:insert> <p:identity> <p:input port="source"> <p:pipe port="result" step="insertGog"/> </p:input> </p:identity> </p:declare-step> I have tested every single step and there, the output the steps create is always as desired. This means, the *tidy* step is flawless, the *xslt* process returns the desired result, I also tested the *insertion* step with an inline document on the *insertion port* and that worked out as well. I also created an, intermediary, second output port and routed the *xslt* result to that one. It worked out fine. However, as soon as I want to insert the result of the *xslt* step under the `div` element into the main document, I get aforementioned result. [1]: As you may have wondered, yes, I did not remove the `c:result` in the result from the *xslt*, yet, but that shouldn't confuse the example.I tested it this way and do not want to confuse things up with making, eventually, an XPath error in a select attribute.
Received on Thursday, 9 November 2017 22:14:25 UTC