问题标签 [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.

0 投票
1 回答
616 浏览

c - xmlSecInit() 将断言失败打印到标准错误 (g_xslt_default_security_prefs == NULL)

我有一些代码与http://www.aleksey.com/xmlsec/api/xmlsec-examples-sign-template-file.html上的示例非常相似:

问题是,虽然xmlSecInit成功(返回 0),但它会将此断言失败记录到 stderr:

我怀疑它是无害的,但记录错误可能是有原因的。我想知道如何避免它。

我没有XMLSEC_NO_XSLT定义,所以#ifdefs 中的那些代码行会执行。

谢谢!

0 投票
1 回答
942 浏览

c++ - C++、libxslt:释放样式表后释放样式表文档会导致崩溃

我正在使用 libxml2 和 libxslt 从 C++ 程序进行 XML 处理。为了使用 XSL 转换 XML 文档,我使用以下函数(删除了错误处理):

问题是程序在倒数第二行因访问冲突而崩溃(glibc 说:free(): invalid pointer: 0x00000000026d8090 * )。

我在文档中找不到 xsltFreeStylesheet 也释放底层文档或其他东西的任何提示,那么这里有什么问题?

0 投票
2 回答
1214 浏览

xslt - 使用 xsl 从节点结构生成面包屑路径

我很难编写一个从节点结构生成面包屑试验的模板。到目前为止它无法正常工作,我认为它应该如何走项目路径存在一些缺陷。

考虑以下页面结构:

此站点索引表示其层次结构中的 xml 内容页面的站点结构(将其视为菜单)。它包含部分,代表站点部分,就像主页、公司、服务、解决方案等。这些部分可以包含带有页面的子部分,或者只是常规内容页面。内容页面(其 xml 内容,如标题、文本内容等)由项目树中的 @id 属性标识。@id 属性主要用于获取将呈现为 html 的整个页面的内容。面包屑模板使用项目节点@id 属性来获取页面的标题(将显示在面包屑路径中)。

我尝试通过检查树中的目标部分属性@section 和目标页面属性@id 来实现以下遍历树的模板。我希望它通过将祖先的@section 属性和@id 与该轴中每个节点的$item_target 进行比较来找到目标item_target,直到找到目标为止。

例如:属性 *$item_section=service* 和页面 id *target item_target=p1-1* 现在应该递归地“步行”到部分​​分支“ service ”(深度 1),检查目标页面 @id 是否在这个级别。在这种情况下,它没有找到,因此它对下一个项目节点级别进行下一次递归调用(通过应用模板)(在这种情况下它将是content-management-systems,在那里找到目标项目页面 p1-1 ,所以跟踪过程完成:

结果应该是这样的:

首页 >> 服务 >> 内容管理系统 >> p1-1

但不幸的是,它不能正常工作,至少不是在所有情况下。也许它可以更容易地解决。我尝试将它实现为一个递归模板,该模板作为叶子从顶部(级别 0)到目标页面(项目节点)。

因此,作为模板面包屑中的硬编码参数,目标部分 = 'service' 和目标页面 = 'search-engines-and-ir',我希望输出类似

首页 >> 服务 >> search-engines-and-ir

但输出是

主页 >> 服务 >> 内容管理系统 >> search-engines-and-ir

这显然是不正确的。

谁能给我一个提示如何纠正这个问题?避免这种深度检查会更加优雅,但到目前为止我想不出其他方法,我相信有一个更优雅的解决方案。

我使用 XSLT 1.0(通过 PHP5 的 libxml)。

希望我的问题足够清楚,如果没有,请询​​问:-)提前感谢您的帮助!

0 投票
1 回答
710 浏览

perl - 无法打开文件 perl

我正在尝试将 plist 文件转换为 JUnit 样式的 XML。我有一个将 plist 转换为 JUnit/ANT XML 的 xsl 样式表。

这是我运行以将 plist 转换为 XML 的 perl 代码:

在 Hudson/Jenkins 上运行 perl 脚本后,它会输出以下错误消息:

无法打开 ~/Hudson/build/workspace/ui-automation/automation\test\suite/Logs/Run\1/Automation\Results.plist:没有这样的文件或目录

该错误是由my $source = $parser->parse_file($path2plist);代码中引起的。我无法弄清楚为什么它无法找到/读取文件。

任何人都知道可能导致错误的原因是什么?

0 投票
1 回答
552 浏览

libxml2 - xmlstarlet 在 mac 中无法正常工作

我为执行一些 xmlstarlet 命令的 Windows 创建了一个批处理文件。我想把它写成 .sh 文件,这样我就可以在 mac 上运行它。问题是..一些命令在windows中运行良好,但在mac中却不行。它也没有显示任何错误。例如。

在 Windows 中,上面的命令会删除提到的 xml 标签。但是它在mac中什么都不做。但是命令

在 mac 和 windows 上都可以正常工作。我已经安装了 xml 工具。检查/usr/local/bin。它有 libxslt.dylib 和 libxml2.dylib。不知道问题出在哪里?有人可以帮忙吗?

0 投票
2 回答
277 浏览

python - Python、libxslt 和在默认命名空间中查找对象

我一直在寻找使用 python libxml2 库和 XSLT 处理 XSTL 的任何示例时遇到了麻烦。我有一组带有默认命名空间的遗留文档,我一直在尝试将它们转换为可以导入到符合 tinkerpop 的数据库中的内容。遗留数据有一个默认命名空间,我不知道如何说服 libxslt 在数据中找到任何东西。

正如您从我的示例中看到的那样,我似乎根本无法从内部模板中获取任何东西来渲染。它似乎确实找到了最顶层的 (cmap) 模板,因为它吐出了<graphml>样板文件。我对 XSLT 相当陌生,所以这可能只是一个缺点,但 SO 或谷歌上似乎没有人有任何这种工作的例子。

我曾考虑过使用正则表达式删除有问题的默认命名空间,但使用正则表达式解析 XML 通常是一个糟糕的计划,而且这似乎是个错误的想法。

我有以下 XML:

还有更多,但这是其中的一个示例。我能够使用该xpathRegisterNS()命令注册默认命名空间并使用它找到我的地图、概念地图等。尝试使用 libxslt 处理此问题时,我没有同样的运气。

而python实验只是:

0 投票
1 回答
57 浏览

xml - 使用函数库而不使用或者

我有几个具有通用代码的 XSL 转换。公共代码由使用 exslt 的函数扩展构建的函数组成。现在我想将这些函数外包到一个库中,以使它们更易于维护。

转换作为资源编译为可执行文件,并在需要时从内存中读取。我想保持这种状态,并为库使用相同的机制。原因是,可执行文件将始终知道它们在哪里,并且不需要路径配置。
现在我的问题是:如何导入外部样式表,它以字符串形式给出,并且不能作为文件使用?

解决问题的一种方法是将样式表写入临时文件并包含这些文件。存在的问题是,临时文件的文件名每次都会更改,因此我必须操纵主要转换以包含临时文件名。在这种情况下,参数不起作用。

关于如何解决这个问题的任何想法,这应该是微不足道的?

环境:libxml2、libxslt (xslt 1.0)、exslt 扩展、Linux。

谢谢,
约斯特

0 投票
4 回答
26756 浏览

macos - 我如何知道 OS X 上安装了哪个版本的 libxml2 和 libxslt?

我正在尝试找出我当前安装的版本。OS X 山狮 (10.8.2)

提前致谢!

0 投票
1 回答
36 浏览

python - 我可以捕获在 XSL 转换过程中使用/未使用的模板吗?

是否可以使用 记录/捕获在 XML 转换期间使用和/或未使用的 XSL 模板lxml?我希望报告和修剪未使用的模板以减少“技术债务”。

0 投票
6 回答
17963 浏览

ruby - 安装 ruby​​ gem nokogiri 时缺少 libxslt

我认识到这是一个重复的问题,但是我发现的与此问题相关的所有其他答案似乎都没有帮助我......

我正在安装GitLab并运行 gem 依赖项,当它达到NokoGirigem 要求并失败并显示以下信息时:

因此,此错误导致我尝试libxslt使用以下命令进行安装:

那么给了什么?NokoGiri 需要这个包,但是这个包已经安装了!!我似乎无法解决这个问题,有什么帮助吗?