A pure MoonBit XSLT 1.0 processor with its own XML parser and XPath 1.0 engine.
moon add oilleelssq-wq/moonxslt///|
test {
let source = "<catalog><book><title>A</title></book></catalog>"
let stylesheet =
#|<?xml version="1.0"?>
#|<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
#| <xsl:template match="/">
#| <titles>
#| <xsl:apply-templates select="//title"/>
#| </titles>
#| </xsl:template>
#| <xsl:template match="title">
#| <title><xsl:value-of select="."/></title>
#| </xsl:template>
#|</xsl:stylesheet>
let result = @xslt.transform(source, stylesheet).unwrap()
println(result) // <titles><title>A</title></titles>
}moon run cmd/main examples/books/books.xsl examples/books/books.xml
moon run cmd/main examples/books/books.xsl examples/books/books.xml out.xml
moon run cmd/main examples/html/books.xsl examples/books/books.xml
moon run cmd/main examples/report/report.xsl examples/report/sales.xml
moon run cmd/main examples/include/prices.xsl examples/include/items.xml| 模块 | 内容 |
|---|---|
| xml | 命名空间感知的文档模型、递归下降解析器(CDATA、注释、处理指令、预定义实体与数字字符引用)、XML 序列化 |
| xpath | XPath 1.0 词法/语法/求值;全部 13 个轴、缩写语法、谓词、并集、比较、算术;核心函数库(concat、substring、translate、normalize-space、sum、id、lang 等) |
| xslt | 模板匹配与优先级、mode、内置模板规则、属性值模板、xsl:value-of、xsl:apply-templates、xsl:call-template/xsl:with-param、xsl:variable/xsl:param、xsl:if、xsl:choose、xsl:for-each、xsl:sort、xsl:copy/xsl:copy-of、xsl:element/xsl:attribute、xsl:comment、xsl:processing-instruction、xsl:text、xsl:number、xsl:message、xsl:strip-space/xsl:preserve-space、format-number/xsl:decimal-format;xml / html / text 三种输出方法 |
| CLI | moonxslt <stylesheet> <source> [output] |
Install
Download zipA pure MoonBit XSLT 1.0 processor with its own XML parser and XPath 1.0 engine.