问题标签 [xproc]

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 投票
6 回答
841 浏览

xml - 使用 XProc 进行 XML 流式传输

我正在使用xproc、XML 管道语言和http://xmlcalabash.com/。我想找到一个流式传输大型 xml 文档的示例。例如,给定以下巨大的xml 文档:

我应该如何继续循环(流式传输)x-> N 文档,例如

并用 xslt 处理每个文档?xproc 可以吗?

0 投票
2 回答
528 浏览

xslt - 具有可变数量源文件的 XSLT 工作流

我有一堆具有固定的、基于国家/地区的命名模式的 XML 文件:、、、report_en.xmlreport_de.xmlreport_fr.xml现在我想编写一个 XSLT 样式表,通过document()XPath 函数读取这些文件中的每一个,提取一些值并生成一个 XML 文件带摘要。我的问题是:如何在不知道要处理的文件的确切名称的情况下迭代源文件?

目前我正计划生成一个包含所有文件名的辅助 XML 文件,并在我的样式表中使用辅助 XML 文件进行迭代。文件列表将使用一个小的 PHP 或 bash 脚本生成。有更好的选择吗?

我知道XProc,但目前对我来说不是一个选择。也许有人可以发布 XProc 解决方案。该解决方案最好包括工作流程步骤,其中报告以 HTML 格式下载并整理:)

我将使用 Saxon 作为我的 XSLT 处理器,所以如果有我可以使用的特定于 Saxon 的扩展,这些也可以。

0 投票
2 回答
1055 浏览

xml - 如何简化这个 xproc 管道?

我刚刚开始研究 XProc(使用Calabash)。我有一系列 XSLT 转换,我想将其应用于单个输入文档以生成单个输出文档。我以前使用一个简单的 Python 脚本来驱动转换,但看起来 XProc 可能是一个不错的选择。

下面的管道似乎对我有用。它本质上只是需要按正确顺序应用的 XSLT 转换的列表。问题是,这似乎是多余的。我希望有某种方法可以减少这种情况,但是(到目前为止)我自己无法弄清楚。

0 投票
1 回答
329 浏览

xml - 执行 XPROC

我对 XSLT 和 XPROC 的东西非常陌生。现在我已经编写了我的示例 XPROC,就像每个初学者一样,我也是从Hello World开始的。

你好.xpl

现在我的问题可能很傻,我想知道如何执行它并查看输出?

谢谢。

0 投票
1 回答
591 浏览

xproc - XPROC - 在辅助端口中生成文件

我的要求是在辅助端口中生成一个 XML 文件和几个 HTML 文件。我在 XProc 中配置了几个步骤。

这是示例代码:

这里的问题是 HTML 文件生成正确。并且生成了 XML 文件,但我无法查看 XML 内容。相反,它以 HTML 格式显示所有内容。这是因为<p:store>上面的代码片段。

你怎么有两个<p:store>步骤?(一个用于 HTML,另一个用于 XML)

0 投票
1 回答
96 浏览

xml - p:variable :: 阴影是什么意思,我可以为先前声明的 p:variable 重新分配一个新值吗

我还没试过。

我们可以在管道中的其他任何地方更新 p:variable 的值,即在某个步骤开始时的有效声明之后?如果不是那为什么?如果我真的需要这样做或至少模拟它,那么最好的方法是什么。

0 投票
1 回答
2234 浏览

xml - XProc: multiple XSLT transformation with intermediate files

I need to do several XSLT transformations with intermediate XML files. (I need the files, the real case is a bit more tricky as a later step loads intermediate files)

I'd like to create an XProc pipleline. I have tried to write the following code, but this gives me an error:

(where SCHWERWIEGEND means something like FATAL) So obviously the file intermediate.xml has not been written.

This is the xpl-document that I have used:

Just for the sake of completeness: these are the transformation files:

source.xml:

first.xsl:

final.xsl:

Here is a note on the real application (the above is a simplification, of course).

  1. First step: convert the source into something more suitable for my processing. Output: companies.xml
  2. Take the output from step 1 and create an index file (index.xml) from that. The index file must be editable manually.
  3. The third step is to merge the files created by step 1 and 2 and create a final xml (final.xml)

The index file must be written to disk and I must be able to run the last step by itself (that's a different problem - I'd write a different pipeline for that)

The output of companies.xml (step 1) is optional, it could be saved in memory (but it might get large).

0 投票
1 回答
254 浏览

spring-mvc - 如何从Java程序调用calabash xml

我尝试使用 spring 和 xslt 建立一个基于 Web 的应用程序。因为我总是以流水线方式使用 xslt,所以我想使用葫芦。是否有可能从 Java 调用葫芦?我阅读了http://xmlcalabash.com上的文档,但只有一个描述如何从命令行使用它。我也厌倦了在 githup 上找到一些 javadoc,但没有成功。显然,有带有 main() 方法的 Main 类,我可以将命令行参数作为字符串数组提供......

我想知道是否有更好的方法来做到这一点。

0 投票
1 回答
390 浏览

xml - 如果结果文档已经存在,则跳过转换

我只想通过 XProc 执行我的转换,而不是使用批处理/shell 脚本。

我的转换过程是输入和输出文档的简单串联 - 所以转换 1 的输出是转换 2 的输入。转换 2 的输出是转换 3 的输入,依此类推。

此代码描述了一个示例转换:

它起作用了,另外我得到了所有临时结果文档来仔细检查每个 XSLT 脚本的功能。处理复杂的多重转换会减慢速度——因为 XProc 脚本总是从头开始。但我只想在转换 4 处修复一些东西。通常(使用批处理/shell)我只是删除转换 4 的输出,修复 XSLT 脚本并代表 if-test 跳过所有先前的转换(例如,如果 output3.xml 存在转到转换4)。如何在 XProc 脚本中执行此操作?

XPath 模式是:not(doc-available(‘output1.xml’))- 与 xsl 结合使用:如果它在 XSLT 中工作。我尝试使用 ap:choose - 但我没有 p:otherwise 的输出管道,并且该过程总是失败。所以我猜使用 p:choose 不会提出所需的解决方案?

有任何想法吗?

亲切的问候奥利弗

0 投票
1 回答
504 浏览

xproc - 转换输出非 XML 文档

我只想将一个输入文档(它只是一个文件引用列表)转换为几个输出文档。

这有效:

XSL:

问题:输出文档不包含根元素 - 我需要输出框架,稍后在此过程中创建框架文件并包含所有输出文档。

错误信息:

09.11.2012 13:06:27 com.xmlcalabash.util.DefaultXProcMessageListener 错误 SCHWERWIEGEND: err:XD0001:XD0001 09.11.2012 13:06:27 com.xmlcalabash.drivers.Main 错误 SCHWERWIEGEND:如果非XML 资源在步骤输出中产生或在步骤输入中到达。

当然它不是 XML - 我试图代表 @method (method=text) 修复它,但它没有奏效。

有任何想法吗?我搜索了适用的解决方案,但我只找到一个条目说这在此刻是不可能的......希望不是