愚蠢且可能简单的 XSL 问题
Silly and Likely Simple XSL Issue
我对这段代码的目标是使用 XSL 来解析平面文件,到目前为止,我读过的大多数建议都涉及使用基于 XSL 3 的模板作为其自己的源。但是,我什至无法使用 xsl:value-of 指令显示基本文本,更不用说访问任何其他功能了。
我知道这可能是一个愚蠢的错误,但请坚持下去。
我正在使用最新的 Saxonica 10.5 HE 运行 sheet 并使用以下命令行选项:
java -jar ~/Documents/SaxonHE10-5J/saxon-he-10.5.jar -s:LinesToXml.xsl -xsl:LinesToXml.xsl
我的源 XSL 是:
<?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" doctype-public="yes"/>
<xsl:template name="xsl:initial-template" >
<root>
<xsl:text>
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"?>
Hello, World! It's
我想你根本不想用 -s
来提供 XML 源,而是 运行 Saxon 只用 -xsl
选项提供 XSLT 文件和额外的原始 -it
选项开始处理您命名为 xsl:initial-template
.
的初始模板
至于命名不同且位于命名空间中的模板(例如 <xsl:template name="ex:main" xmlns:ex="http://example.com/">
),如果您需要在命令行中拼写出来,那么 https://www.saxonica.com/html/documentation10/using-xsl/commandline/ 建议使用 -it:{url}localname
例如-it:{http://example.com/}main
。如果大括号在您的命令中有意义,您将需要找到一种方法来转义大括号 shell.
我对这段代码的目标是使用 XSL 来解析平面文件,到目前为止,我读过的大多数建议都涉及使用基于 XSL 3 的模板作为其自己的源。但是,我什至无法使用 xsl:value-of 指令显示基本文本,更不用说访问任何其他功能了。
我知道这可能是一个愚蠢的错误,但请坚持下去。
我正在使用最新的 Saxonica 10.5 HE 运行 sheet 并使用以下命令行选项:
java -jar ~/Documents/SaxonHE10-5J/saxon-he-10.5.jar -s:LinesToXml.xsl -xsl:LinesToXml.xsl
我的源 XSL 是:
<?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" doctype-public="yes"/>
<xsl:template name="xsl:initial-template" >
<root>
<xsl:text>
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"?>
Hello, World! It's
我想你根本不想用 -s
来提供 XML 源,而是 运行 Saxon 只用 -xsl
选项提供 XSLT 文件和额外的原始 -it
选项开始处理您命名为 xsl:initial-template
.
至于命名不同且位于命名空间中的模板(例如 <xsl:template name="ex:main" xmlns:ex="http://example.com/">
),如果您需要在命令行中拼写出来,那么 https://www.saxonica.com/html/documentation10/using-xsl/commandline/ 建议使用 -it:{url}localname
例如-it:{http://example.com/}main
。如果大括号在您的命令中有意义,您将需要找到一种方法来转义大括号 shell.