You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XSL 3.x技术问题:xsl:value-of指令无法正常输出内容及平面文件解析受阻

解决XSLT 3初始模板输出截断的问题

嘿,我来帮你搞定这个小问题!你遇到的输出截断和功能失效,其实是两个容易忽略的小细节导致的,咱们一步步修复:

1. 修正命令行参数

你当前的命令把样式表同时作为源文档和样式表来处理,但当你用xsl:initial-template时,根本不需要源输入——你只是要直接执行模板生成内容。Saxon提供了-it参数专门用来触发初始模板,不需要指定-s参数。

替换成这个命令:

java -jar ~/Documents/SaxonHE10-5J/saxon-he-10.5.jar -xsl:LinesToXml.xsl -it

2. 修复输出设置的错误

你的xsl:output里的doctype-public="yes"是无效的——这个属性需要的是DTD的公共标识符字符串,而不是布尔值yes。这个错误会导致Saxon在处理输出时出现异常,进而截断内容。

把输出设置改成这样(如果不需要DOCTYPE声明,直接删掉doctype-public属性即可):

<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

完整修正后的样式表

<?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" 
                version="3">
    <xsl:strip-space elements="*"/>
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template name="xsl:initial-template" >
        <root>
            <xsl:text>&#xA;Hello, World! It's </xsl:text>
            <xsl:value-of select="'simple text that I cannot see.'" />
        </root>
    </xsl:template>
</xsl:stylesheet>

测试结果

用修正后的命令运行,你会得到完整的输出:

<?xml version="1.0" encoding="UTF-8"?>
<root>
Hello, World! It's simple text that I cannot see.
</root>

内容的提问来源于stack exchange,提问作者Phil 2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 07:37:40