问题标签 [saxon-js]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
60 浏览

xslt - 如果 DOM classList 包含特定类,请检查 Saxon-JS 2.1

Saxon-JS 不仅可以在浏览器中运行 XSLT,还可以读写 HTML 内容。使用 JavaScript,可以通过以下方式检查元素类列表中是否包含“已编辑”类

但是如何使用 Saxon-JS 2.1 实现这一点?

可能的方法似乎是

ixsl:get($node, 'class')但我不知道如何通过 id 指定节点(这将返回整个类列表)

ixsl:eval('document.getElementById({$id}).classList.contains('edited')')但我想不支持使用 {$id} 并且“已编辑”使用撇号,这些撇号已经用于包含 eval 参数和整个 xpath 语句(此处不包括)。所以不能同时使用单撇号和双撇号。

ixsl:eval(document.getElementById('+$id+').classList.contains('+$class+')')在这里,我收到一条错误消息,指出“没有为 xs:string 类型的参数定义算术运算符”。

ixsl:eval(concat('document.getElementById(',$id,').classList.contains(',$class,')'))但即使这样也行不通。它被编译成 sef 但在运行时出现错误“无法读取 null 属性”。

我知道我可以在 HTML 页面中编写一个 JavaScript 函数并调用它自己的函数,但我想在 XSLT 脚本中完成它。

0 投票
1 回答
82 浏览

json - XSLT WMS GetCapabilities 到 JSON

我正在尝试将 GeoMet WMS XML response.data 的 GetCapabilities 转换为可在v-treeviewVuetify 组件中使用的 JSON,例如此链接

我的测试函数返回所有信息,并没有真正按照我需要的方式解析 XML 响应,而且我是 XSLT 的新手。我需要一些只返回标签的<Name><Title>innerHTML 的东西,<Layer>以及它们在数组中的子元素,children如下所示:

编辑:完整 XML的示例 XML,它有一个根,只有一个标题,它有 14 组

0 投票
1 回答
114 浏览

node.js - Saxon-js 是否对 xsl:param 执行 XML 语法检查?

我通过 Saxon-js 运行这个 XSL 脚本。它使用在使用 stylesheetParams 的转换调用中接收到的 XML 更新主输入 XHTML 上的成本字段。都好。问题是没有对 param-XML 进行语法检查(您可以在注释掉的行中看到它的样子)。它在 XHTML 上,转换会生成错误,但不会在 param-XML 上。它只是允许它进入,然后键功能不会更新 XHTML。有没有办法在同一个转换调用中检查格式正确的 XML 参数,还是我必须使用 2 个转换调用:在 param-XSL 上调用转换进行语法检查,然后调用这个主转换来更新 XHTML ?

0 投票
1 回答
158 浏览

xslt - 编译样式表时的未知函数 saxon:parse-html

我正在使用 Saxon-EE 10.3 变压器对 Oxygen 进行 XSL 转换。我想稍后在我的网站上使用已编译的样式表 (sef.json) 和 Saxon-JS 2。在 XSL 转换中,我使用 saxon:parse-html 函数,其 saxon 命名空间声明如下:

并以这种方式调用该函数:

我尝试通过以下命令编译样式表:

但我遇到以下错误:

但是,这种转换在 Oxygen 内部没有问题。

0 投票
1 回答
193 浏览

node.js - 如何在 Node 中使用 saxon-js 处理 XPath 表达式

我在 Typescript 中编写了以下类:

...我正在这样使用它:

“transform”-Method 工作正常,但是当我使用“pick”-Method 时,我总是得到这个错误:

我的 XPath-Expression 在这种测试数据上是有效的,所以我假设我必须以另一种方式提供表达式:

我做错了什么,thx。

0 投票
1 回答
33 浏览

xslt - 简单的 xsl:key 不匹配

无法确定此 xsl:key 示例工作的正确参数。我想要的是输出相同的 xhtml,其中速率/名称字段根据 root.xml 中的数据更改。

XHMTL(主输入)

XML - 根.xml

XSL

发生的事情是输出中的名称/速率字段为空白,因此显然 xsl:key 调用不正确。我什至尝试了 2 种方法:krate 和 kname,但没有运气。我还在 xsl:key 上尝试了许多不同的 @ord xpath 字符串。

root.xml 只是一个测试版本。在生产中,它会复杂得多。

0 投票
1 回答
30 浏览

node.js - SaxonJS 性能问题

我刚刚发现并开始使用Saxon-JS能够对 Peppol (Peppol.eu) 消息运行 Schematron 验证,而且效果很好!

我已经将所需的 Schemat“预编译”为 JSON(使用schxsltand xslt3),然后我正在SaxonJS.transform()对数据执行。

由于这些样式表相当大,因此需要一些时间,而且性能是关键,因为它是通过 API 运行的。

我在 a 中运行了三个调用Promise.all()并添加了计时器。从计时器我可以看到函数调用是并行发生的,但执行SaxonJS.transform()似乎是顺序的,即当第一个SaxonJS.transform()返回时,下一个开始......

我尝试添加threads代码以使其在“workers”中运行,但我需要向函数发送一个 XMLDom 对象并且threads不支持它似乎......

在此处输入图像描述

大约430ms在两次执行之间runTransform(),它们被称为:

这些功能不应该并行运行(至少“更多”并行)吗?

0 投票
1 回答
156 浏览

node.js - 如何使用 SaxonJS 进行模式验证以获取缺失的引用

如果我有一个简单的 xsd 文件和一个简单的 xml 文件,SaxonJS 是否可以显示 xml 中的哪些元素和哪些属性未在 xsd 中定义?

我一直在寻找例子,但到目前为止还没有找到任何东西。

更新

我还将接受使用 saxon-js 遍历 xml 资源并检查 xsd 资源中的元素和属性(不必检查属性值)的 js 代码(节点)的答案。

以某种有效的方式。

0 投票
1 回答
43 浏览

json - saxonjs 忽略 json 输入的匹配规则

我正在尝试使用 saxonjs 将 json 输入转换为 xml,这是我的代码的简化版本

我的 xslt 样式表是这样的:

结果总是空的或更准确 <?xml version="1.0" encoding="utf-8"?> 如果我用 match="issue" 或 "/issue" 替换 match="/" 结果是一样的,我做错了什么?

0 投票
1 回答
89 浏览

node.js - 如何使用 saxonjs 将 json 转换为 xml?

我需要使用 saxonjs 将 json 转换为 xml,我不知道如何将键与 xml 节点匹配,我正在寻找一些示例,它们都不适合我,这是我的代码

这就是我想要实现的输出

你能帮我看看 xslt 模板吗?