使用xsl:copy-of-my轉換來轉換下列xml時,會丟失origianl文檔的格式 - 我不希望它接觸原始文件。 Litrally剛纔複製的節點 - 不變XSLT拷貝不保留空白
源XML
<flow>
<flow>
<material><mattext fontface="Arial"><p style="white-space: pre-wrap"><font size="11">The moon is the only extraterrestrial body to be visited by humans?</font></p></mattext>
</material>
</flow>
我得到這樣的結果
<flow><flow><material><mattext fontface="Arial" texttype="text/plain"><p style="white-space: pre-wrap"><font size="11">The moon is the only extraterrestrial body to be visited by humans?</font></p></mattext></material></flow>
正如你可以看到它把它所有在同一行 - 我的目的,我需要保留空白(漂亮的打印不是選項)
我的XSL看起來像這樣
<xsl:for-each-group select="qti:item" group-adjacent="(position()-1)">
<!-- Output the file-->
<xsl:result-document href="{$filename}">
<questtag>
<!-- Output the contents-->
<xsl:copy-of select="current-group()"/>
</questtag>
</xsl:result-document>
</xsl:for-each-group>
更新:確定 - 我發現,如果我刪除源文件DTD然後空格被保留 - 但這心不是2.0的狀態,當所述源是從DTD-或構建的溶液的一個選項
Rob,考慮提供最小但完整的樣本,以便我們重現問題,以及有關哪個XSLT 2.0處理器和您使用的XML解析器的信息。恐怕發佈的源代碼XML根本不會顯示任何'for-each-group'進程的'qti:item'。 –
...你如何應用XSLT?如果您首先將XML加載到DOM對象中 - 或者通過DOM對象來保存結果 - 這可能會導致丟失空格,而不管XSLT在做什麼 – MiMo
我使用SAXON 9.4來轉換 – Rob