问题标签 [libxslt]
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.
python - AWS EB libxml2 和 libxslt 错误
作为一些背景,我正在运行 macOS,并将 Python 应用程序部署到 AWS Elastic Beanstalk (EB)。
我的应用程序不需要libxml2-devel
或libxslt-devel
在本地运行,但是当推送到 Amazon EC2 时,由于某种原因,两者都libxml2-devel
成为libxslt-devel
依赖项。通过 SSH,我可以使用sudo yum install -y libxml2-devel libxslt-devel
. 这是我可以纠正的问题,还是 AWS EB 的问题?
此外,为了获得 libxml2 Python 绑定,我已经厌倦了卸载然后安装libxslt
,但这并没有解决问题。libxml2
以下是来自 AWS 运行状况控制台的错误消息:
xslt - XSLT 用于从非线性 XML 结构中提取元素
我有一个 XML 结构,其中 XML 架构不规则/未格式化。结构是这样的——
现在我预期的 XML 如下 -
a)如果<element2>
== 所有节点中的水果,我需要如下 XML 模式。我可以在主机下方包含或排除以下 n 个元素 -
。预期结果 -
b)如果<element2>
== 所有节点中的蔬菜,我需要如下 XML 模式
注意:<element2>
==蔬菜总是在模式中的最后一个节点
通过 XSLT 获得上述 XML 格式的任何帮助都将是一个很大的帮助。
java - 如何有效地并行运行大量文件的 XSLT 转换?
我每次必须定期在 1 个文件夹中转换大量 XML 文件(最少 100K)(基本上,从解压缩的输入数据集中),我想学习如何以最有效的方式做到这一点。我的技术堆栈由 XLT 和 Saxon XSLT Java 库组成,它们是从 Bash 脚本调用的。它运行在具有 8 个内核的 Ubuntu 服务器和具有 64Gb 内存的 SSD RAID 上。请记住,我很好地处理了 XSLT,但我仍在学习 Bash 以及如何为此类任务正确分配负载(当时 Java 也几乎只是一个词)。
我之前创建了一个关于这个问题的帖子,因为我的方法似乎非常低效并且实际上需要帮助才能正常运行(参见这个SOF 帖子)。后来有很多评论,以不同的方式提出这个问题是有意义的,因此这篇文章。有人向我提出了几种解决方案,其中一种目前比我的要好得多,但它仍然可以更加优雅和高效。
现在,我正在运行这个:
我根据之前的一些测试设置了 600 个进程。更高只会引发 Java 的内存错误。但它现在只使用 30 到 40Gb 的 RAM(尽管所有 8 个内核都处于 100% 状态)。
简而言之,这是我迄今为止的所有建议/方法:
- 在子文件夹之间拆分整个 XML 文件(例如,包含每个 5K 文件),并将其用作在每个子文件夹的并行转换脚本中运行的一种方式
- 专门使用Saxon- EE库 (允许多线程执行)和
collection()
函数来解析 XML 文件 - 设置任务数量较少的 Java 环境,或减少每个进程的内存
- 指定 Saxon 是否与 XSLT 表兼容
libxml/libxslt
(不是仅适用于 XSLT1.0 吗?) - 使用专门的外壳,例如
xmlsh
我可以处理解决方案#2,它应该直接启用控制循环并仅加载一次JVM;#1 似乎更笨拙,我仍然需要在 Bash 中改进(负载分布和性能,处理相对/绝对路径);#3、#4 和 #5 对我来说是全新的,我可能需要更多解释来了解如何解决这个问题。
任何投入将不胜感激。
xml - XSLT 1.0 使用数字引用输出 XML 转义字符
我正在使用 libxslt(xsltproc 命令)将 XML 文档转换为另一个 XML。
我想知道是否有一种简单的方法可以请求 libxslt 在输出中对 XML 转义字符使用数字引用(例如&
for &
)。原因是使用输出的应用程序不理解预定义的实体 ( &
),但理解数字字符引用。
我知道有一些复杂的方法可以实现这一点,但我想也许我错过了一个简单的样式表指示或命令行选项可以做到这一点。如果没有,修改消费应用程序可能更有意义。
举个例子,输入 XML 是:
XSL 是:
结果是:
我追求的结果是:
我尝试在样式表之前添加以下内容:
或者
但它不起作用(即无论有没有实体定义,结果都是一样的)。
我也明白character-map
s 不是一个选项,因为它们在 XSLT 1.0 中不可用。
qt - NotepadQQ 编译出错。可能是错误的 libxslt 或 libxml2 版本?
我正在尝试使用 Qt5.3 在 SUSE SLED 11 机器上编译 NotepaddQQ(我知道......它已经过时了,但它是一台工作机器,我无权更新它)并且遇到以下错误:
我不确定@LIBXML2_### 后缀是什么意思???但我设法找出了我拥有的 libxml2 和 libxslt 版本:
有什么地方不兼容吗?谢谢...
编辑:
xml - xslt 递归模板的尾调用优化
背景
我们正在使用启用了 ngx_http_xslt_module 的 nginx。这将有助于我们将样式表应用于响应。
该模块在内部使用 libxslt 处理器来应用 xslt 转换。它具有可配置的递归深度(最大深度),超过该深度它将发出无限递归错误的信号。
问题
在深度为 3000 时,以下 xslt 转换在应用于文档时因无限递归错误而失败。根据我所看到的其他答案,以下 xslt 模板是尾调用优化的,一些处理器优化了代码。想从 xslt 确认透视下面的 xslt 函数是否真的进行了尾部优化,以及 libxslt 是否进行了尾部调用优化。
但是,当转换为代码时,escapeQuote xslt 模板并未优化尾 调用。
下面是用于转义双引号的 xslt 模板。
这是在 XSLT 1.0 中。
xslt - xsltproc 在多个文件之前和之后添加文本
我正在使用该xsltproc
实用程序使用如下命令将多个 xml 测试结果转换为漂亮的打印控制台输出。
哪里stylesheet.xslt
看起来像这样:
这给了我一个类似于这样的输出:
我想要的是以下内容:
谷歌搜索是空的。我怀疑我可能能够在将 xml 文件提供给之前以某种方式合并它们xsltproc
,但我希望有一个更简单的解决方案。
python - python3.4安装lxml报错
我正在尝试在命令提示符下运行以下命令 -
但它显示了很多错误,我不知道如何解决它们,因为我不熟悉 python。
错误是:1。
3.
请帮我解决这些问题,我需要它用于一个项目,我真的需要完成它。我在 Windows 10(英特尔处理器)和 Python3.4 上。
ruby - 在带有系统库的 Windows 上安装 Nokogiri
我正在尝试在没有 Internet 功能的 64 位 Windows 机器上安装 Nokogiri 1.7.1。我下载了 Nokogiri gem 和必要的库(libxml2、libxslt、iconv、zlib)并将它们转移到无互联网机器上。我现在正在尝试使用以下命令让 gem install 正确运行:
但我不断收到同样的错误:
以及其他人在无法构建 Nokogiri 时收到的相同信息。我正在使用 libxml2 2.9.2 和 libxslt 1.1.28
xml - xslt 从 xml 节点值中嵌套选择
我已经查看了有关嵌套选择的其他一些帖子,但不相信它们解决了我的用例。本质上,我正在尝试通过 Web 服务在另一个系统中创建一个用户帐户,并且需要传递一个登录 ID,该登录 ID 源自我的 xml 中的一个字段,该字段基本上可以是任何东西,例如员工 ID、电子邮件地址、UUID 等。要使用的字段将来自生成 xml 的配置值。为简单起见,我将我的 xml 和 xslt 缩写,所以请不要建议我使用选择或 if 语句,因为我需要保持可能的 xml 字段从广泛开放中进行选择。
示例 XML:
XSL 示例:
转换后的 XML:
我真正希望回来的是:
我难住了。有什么想法吗?