问题标签 [saxon]
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.
java - XSLT 和 XInclude
我有一个名为 和 的三个A.xml
XMLB.xml
文件C.xml
。
A 通过 XInclude 包括 B 和 C。
我希望 Saxon 在解析 A.xml 中的包含后处理 A.xml。
到目前为止,我可以激活 XInclude,但 Saxon 没有收到解析的 A.xml,而是原始版本:\
我能怎么做 ?
撒克逊 9.3 HE Java 6
xslt - 文件集内存不足/未释放内存的 Ant XSLT 任务
我有一个大 (1.9 GB) XML 文件,其中包含我想每个月插入 MySQL 数据库的数据。我为此制作了一个 Ant 脚本。
Ant XSLT 任务无法处理这么大的文件,因此我有一个任务使用 xml_split(来自 xml-twig-tools)将 1.9 GB 的 xml 文件拆分为大约 4 MB 的较小的 xml 文件。
这一切都很顺利。
我使用以下 Ant xml 对所有这些 XML 文件运行 XSLT 任务:
问题是,一旦它从第一个 XML 文件开始,我看到 linux顶部的“RES”内存随着每个下一个 XML 文件而增长。由于它正在处理多个(不相关的)xml 文件,我怀疑它会在每个 xml 文件的翻译之间释放内存。好吧,它没有......在两百个 4MB xml 文件之后,java 抛出一个内存不足异常:
我可以做些什么来防止 XSLT 任务占用我所有的内存吗?还是我应该重新考虑我的方法?
xquery - 如何在 xquery 中格式化小数?
我正在尝试在 XQuery 中格式化小数。小数是货币,所以格式应该是,###.##
.
例如:
5573652.23
应该5,573,652.23
和
352769
应该是352,769
(或者352,769.00
如果它更容易/更清洁)
现在我正在使用来自http://www.xqueryhacker.com/2009/09/format-number-in-xquery/的这个函数,但我不能使用小数:
我正在为我的处理器使用 Saxon 9HE。
任何帮助将不胜感激。
- - - 更新 - - -
根据 Dimitre 的回答,我修改了函数以保存小数部分并将其添加到返回字符串的末尾。
新功能
php - Xslt 在 php 中不起作用,但 saxon 可以
我有时在 Kernow 中使用 saxon 处理器测试我的 xslt 样式表。我总是使用 xslt 1.0,因为 simplexml 甚至 simpledom 只能执行 xslt 1.0。以下样式表在 php 中不起作用:
那就是样式表是 php 抛出编译错误,无法编译 when 语句<xsl:when test="count($ctag/ancestor::*[local-name()=current()/local-name() and text()=current()/text()]|$ctag/descendant::*[local-name()=current()/local-name() and text()=current()/text()])>0">
我知道这个模板并不完美,也不容易理解。在php中遇到此类问题的任何经验?感谢您的帮助!
罗伯特
xml - 如何在 Saxon-HE 中获得 EXSLT 支持?
我有一堆需要针对一些 XML 文件处理的 XSLT 文件。我无法更改 XSLT 文件,因为它们来自第 3 方。XSLT 是 2.0 版。
我在 Mac OS X 10.6 上,看起来Saxon-HE是唯一可用的 XSLT 2.0 处理器。
XSLT 的大部分工作都很好,但是,有些会给出关于缺少函数的错误,特别是month-in-year()
其他与日期/时间相关的函数。
根据 http://www.saxonica.com/documentation/extensions/exslt.xml关于 EXSLT:
这些扩展在“开箱即用”的 Saxon-PE 和 Saxon-EE 中可用。它们在 Saxon-HE 中不可用
无论如何,我可以在 Saxon-HE 中使用 EXSLT 功能吗?
如果可行的话,我很高兴转向另一个工具/处理器。
xml - XSLT 2.0 函数可以返回任意类型吗?
我正在尝试编写一个返回特定类型结果的 XSLT 2.0 函数——比如说一个或多个元素。这是我尝试过的,但无济于事:
这是我从撒克逊处理器得到的错误:
但我希望得到这样的东西:
我在这里想念什么?我以为我已经为 $output (一个或多个<parent>
元素)指定了适当的类型,但处理器显然没有收到消息并且只看到文本。如何<parent>
在此处返回元素列表?提前致谢...
更新:
总而言之,标题中问题的答案是“是”。<xsl:value-of>
原始示例中的关键是和之间的区别<xsl:sequence>
。用后者替换前者是获得所需行为的一种方法。另一种方法是从<xsl:variable>
元素中“解包”内容,这会使事情变得更整洁:
感谢迈克尔和吉姆抓住了我最初的疏忽……
performance - 我在哪里可以找到 xquery 处理器之间的速度比较,特别是 Saxon 和 Zorba?
我找到了功能比较,但没有找到速度比较。
Saxon 是用 Java 编写的,我相信 Zorba 是用 C 编写的,所以人们会期望 Zorba 更快,但是是吗?
xml - 为什么撒克逊不产生任何文件输出?
即使没有明确的文本输出,XSLT 解析器也应该生成一个空文件。但是,我遇到了Saxon-HE 9.3根本不产生任何文件输出的情况。
我使用以下命令编译了文件:
其中1.xml的内容是:
而2.xsl的内容是:
但是,没有输出(甚至没有空文件)。也没有任何错误信息。
可能是什么问题?
xml - 如何使用 XQuery fn:idref() 函数?
我无法让 XQuery 函数fn:idref()
返回任何内容。
我有这个 XML 文档doc.xml;
还有这个 XQuery;
但结果总是空的。我猜该属性idref="xyz"
需要声明为类型idref
,但可以在没有模式的情况下完成吗?
我正在使用 Saxon XQuery 1.0 处理器。