问题标签 [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.
php - PHP:XSLT 处理器在 Windows WRT 到 Linux 中的不同行为
我有这个 php 片段:
它只是将 XSLT 应用于给定的 XML 文档。
当我将以下 XSLT 应用于同一个 XML 文档时,我得到了 Windows wrt 与 Linux PHP 版本不同的行为。
这是 php 和 libxml 版本的详细信息:
视窗:
Linux:
这是 XSLT 代码:
以及在 win 和 linux XSLT 中给出不同结果的 XML Doc:
Linux 输出 这是在 Linux 上应用 XSLT 实际产生的所需输出:
Windows 输出 这是在 Windows 上产生的错误结果:
问题在于 NaN 放置而不是相对索引:它肯定与 xsl:number 元素有关,但我不知道如何解决这个问题......
接受答案后编辑
通过将xsl:number
count
属性更改为*
而不是node()
xslt 模板可以在 Win 和 Linux 上按预期工作。
这是更新的代码:
xml - xmlXPathCompOpEval:未找到函数节点集
我正在为我的程序中的 XSLT 处理实现几个库(libxslt、libxml2、libexslt)。我包含了头文件和 .so 文件以将库链接到程序,并发现链接运行良好。
下面是在我的程序中使用库的一些函数来实现XSLT处理的代码,结果前两行运行良好,但在最后一行产生了错误。
//error
xmlXPathCompOpEval : function node-set not found
XPath error : Unregistered function
使用xsltproc(libxslt 的命令行版本)和我的计算机中相同的 XML(输入文件)和 XSL 文件(样式表文件),相同的 XSLT 处理工作得很好,但实现不起作用。
我知道节点集函数在 libexslt 中。但为什么它不起作用?是图书馆的链接问题吗?特别是 libexslt?还是配置?你们知道这个错误的任何解决方案吗?非常感谢您的帮助。谢谢你。
xml - 与 xsltproc 相比不同的 XSLT 处理结果
我正在使用 libxslt(加上 libxml2、libexslt)进行 XSLT 处理。
首先,我xsltproc
使用如下所示的 XML 输入文件和 MS Office 的 XSL 文件 (APASixthEditionOfficeOnline.xsl) 进行了 XSLT 处理。您可以看到如下所示的 XML 输出。
XML 输入 (input.xml)
XSL 样式表 (APASixthEditionOfficeOnline.xsl)
XML 输出xsltproc
我在命令行中编写了以下代码。
xsltproc APASixthEditionOfficeOnline.xsl input.xml > output.xml
我在 output.xml
APA中得到了一个文本
同时,我尝试通过实现libxml2和libxslt的功能来制作自己的xsltproc。
我使用了相同的 APASixthEditionOfficeOnline.xsl 文件,但是没有解析 input.xml 而是在代码中生成了 XmlDocPtr。下面是我的代码。
我的代码
变量的预期结果xmlData
是“APA”,但我得到了这个结果。
我的结果
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
我想要 xsltproc 的相同结果。
你能找出我的代码的问题吗?
这对您的评论非常有帮助。
谢谢你。
xslt - Apache Xalan 的替代 XSLT 处理器
我目前在我的 Java 应用程序中使用 Apache Xalan XSLT 处理器,但我想使用一些支持使用扩展功能的替代解决方案。Xalan 似乎已经过时并且有问题。我知道 Saxonixa Saxon,但它是闭源的。是否有一些开源且运行良好的替代方案?
nginx - ./configure: 错误:HTTP XSLT 模块需要 libxml2/libxslt 库
我最近将我的 mac-os 更新为 Mojave。我正在使用 Nginx,它正在我以前的操作系统上运行,但是在更新到 Mojave 之后,我无法启动我的 Nginx。所以我尝试再次安装它,首先它给了我c编译器错误,所以我下载了Xcode命令行工具,它就消失了。现在它给了我找不到 libxml2/libxslt 库。我尝试使用 brew 安装它,但仍然遇到相同的错误。我不确定出了什么问题。
我已经使用 brew install 下载了 libxml2 和 libxslt。
我的配置脚本。
错误 :
你可以看到它能够找到 OpenSSL、zlib 但不能找到 libxslt。请有人帮我解决这个问题。
c - C 程序使用 XSLT 从字符串 XML 中过滤 anyURI 类型的元素
我有一个 XML 字符串,我想在这个 XML 上应用 XSLT 字符串来过滤 anyURI 类型的元素。
我有兴趣使用 libxslt。但它会转换文件中存在的 xml。我想转换 xml字符串。
如何编写一个 C 程序来转换这个 xml 字符串?
xml - Nokogiri 1.10.5 及更高版本对 ONIX XSD 进行误报验证
Nokogiri 的版本 1.10.5 及更高版本针对 ONIX v2.1 和 v3 XSD 产生与版本 1.10.4 不同的验证错误,并且我在该版本中找不到任何提交和更改的依赖项(libxml2-2.9.10和libxslt 1.1 .34 ) 这将导致这种行为变化。
我创建了一个无效 ONIX XML 的小例子(ff
不是允许的列表条目 <ProductForm>ff</ProductForm>
):
并为它创建了一个使用 ONIX XSD 的测试:
指定版本 1.10.4 时测试通过,而在 1.10.5 及更高版本中测试失败,因为它忽略返回以下错误:
"26:0: ERROR: Element 'ProductForm': 'ff' is not a valid value of the atomic type 'List7'."
这是一个包含测试装置的 zip 文件,关于 gem 存储库中提出的问题,您可以使用它运行$ ruby -Ilib:test 1.10.4/test_case.rb
和$ ruby -Ilib:test 1.10.5/test_case.rb
php - XSLTProcessor::transformToUri():内存分配失败:达到任意 MAX_URI_LENGTH 限制
我有一些 XML 文件需要在 Html 中“转换”并显示在屏幕上。
我开发了一个简单的脚本,它几乎在所有时间都可以使用,使用DOMDocument
and XSLTProcessor
.
问题是有时它会给出这个错误,而生成的 html 只是完整内容的一部分:
XSLTProcessor::transformToUri(): Memory allocation failed : reaching arbitrary MAX_URI_LENGTH limit in /var/www/test/index.php on line 14
这是我的脚本的工作副本,它对相同的文件给出了相同的错误。
我试图将输出保存到文件中,但我仍然遇到同样的错误,所以php://output
应该不是问题。我该如何解决这个问题?
编辑: 看起来问题出在以下代码中。事实上,如果我删除以下行,我将不再看到问题。我希望这有帮助:
附件本身是一个 base64 pdf 文件(在本例中是一个 ~1mb 字符串,但可能更多)
编辑 2:如果我尝试使用命令行xsltproc
命令生成 html,会发生这种情况:
编辑 3:我尝试用 替换transformToURI
,transformToXML
没有结果。libxml_get_errors()
也没有显示任何结果。
xml - 禁用输出转义在 MacOS Catalina 上被 libxslt 库破坏
升级到 MacOS Catalina 并链接到 10.15 SDK 中包含的 libxslt 和 libxml2 后,一个奇怪的问题是,所有的使用disable-output-escaping="yes"
都被破坏了并且无论如何都会转义输出。来自各种 XSLT 工作表的几个示例:
节点中LBL_CM_3
有一些 HTML,例如cm<sup>3</sup>
. 当我的代码使用非常直接的 API 处理时,这两种情况都被转义(意外结果)。这是一个精简的版本,省略了错误检查和清理:
但是,如果我使用 处理相同的输入和样式表/usr/bin/xsltproc
,则不会转义输出(预期结果)。我们都链接系统上的同一个库:
系统xsltproc
版本信息:
10.15 SDKusr/include/libxml/xmlversion.h
显示相同的版本:
这与之前使用 MacOS Sierra SDK 的预期一样工作,具有相同的调用代码和相同的 XSLT 工作表。XSLT 处理的所有其余部分似乎都按预期工作,只是disable-output-escaping="yes"
被忽略了。
c - 创建 FILE 时出现分段错误
我尝试将带有 XSLT 的 XML 文件转换为 HTML。
它可以工作,但 HTML 代码显示在控制台中。我想将它保存到一个文件中,但是当我尝试创建文件“result.html”并将其放入 xsltSaveResultToFile(ptrFile, res, cur) 时出现错误“分段错误”。我该怎么做才能修复它?