xsltproc是Linux/macOS下最轻量可控的HTML表格生成方式,需确保XML结构规范、XSL首行声明编码、命令顺序为xsltproc style.xsl data.xml > output.html,并正确设置xsl:output method="html"等参数。
用
命令行快速生成 HTML 表格
Linux/macOS 下最轻量、最可控的方式就是用系统自带的
,不用装浏览器、不依赖 JS,一条命令跑完就出 HTML 文件。
常见错误是直接双击 XSL 文件——那只是被浏览器当 XML 打开,根本不会执行转换;或者误以为 XSLT 能像 CSS 一样“挂载”到 XML 上自动生效,其实它必须显式调用处理器。
确保 XML 有明确根节点和结构化子元素(比如
),XSLT 才好匹配
XSL 文件第一行必须是
,否则
会报
执行命令:
,注意顺序:XSL 在前,XML 在后
和
到底选哪个
初学者容易卡在这儿:都用来遍历,但语义和可维护性差很远。
是命令式写法,适合简单扁平列表;
是声明式,靠
规则驱动,更适合嵌套或需复用模板的场景。
比如 XML 里有
和
两类节点,用
可分别定义
和
模板;而
只能硬编码处理逻辑,加个新类型就得改循环体。
立即学习
“
前端免费学习笔记(深入)
”;
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
表格主体用
完全没问题,简洁直接
如果 XML 含混合内容(如注释、文本节点、属性),
更安全,它默认忽略空白文本节点,
可能意外匹配到空字符串
性能上无实质差异,别为“看起来高级”强行套
表格列对不齐?检查
的
路径是否带多余斜杠
典型现象:HTML 表格某列全空,或所有单元格显示同一个值。大概率是 XPath 写错了,尤其是路径开头多了一个
,导致从文档根开始绝对匹配,而不是相对当前上下文。
假设当前在
里,想取每个 item 的 price:
正确;
就会失败——因为
表示整个 XML 的根下找 item,而当前上下文已是某个 item 节点。
调试技巧:临时换成
看当前节点名,确认上下文是否符合预期
属性要用
前缀,比如
,漏掉
就取不到
含命名空间的 XML 必须在 XSL 中声明前缀并使用,否则
会静默失败
中文乱码、样式丢失?XSLT 输出设置和 HTML 基础结构不能省
默认输出 XML 格式,直接写进 .
html
文件会导致浏览器解析异常——比如中文变问号、
xsltprocxsltprocA 10 xsltprocfailed to parsexsltproc style.xsl data.xml > output.htmlmatchmatch="product"match="category"apply-templatesselect//item@@select="ns:price"xsltproc
标签没闭合、缺少
外壳。
必须在 XSL 文件的
里明确指定:
method="html"
、
encoding="UTF-8"
、
indent="yes"
,否则即使源文件是 UTF-8,输出也可能被当 ISO-8859-1 处理。
HTML 骨架要手写:XSLT 不会自动补
,这些得写在
里
避免用
拼接标签,容易漏斜杠或引号,直接写
Chrome 对 XSLT 生成的 HTML 兼容性较好,但 Safari 16+ 会禁用本地文件的 XSLT 处理,务必用
xsltproc
或 HTTP 服务打开
XSLT 看似规则简单,但 XML 命名空间、XPath 上下文、输出方法三者稍一错位,结果就完全不可控——与其反复刷新浏览器猜原因,不如先用
xsltproc --novalid style.xsl data.xml
看报错,再逐层确认路径和编码。
相关文章
