问题标签 [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 投票
0 回答
179 浏览

xml - XSLT - 合并两个具有不同本地名称的元素节点

我想使用 XSLT 合并两个本地名称不同的元素节点。

例如合并 file1.xml

使用 file2.xml

获取输出 file3.xml

我基本上想将 E 视为通配符。这可能吗?如果是这样,您能否提供一些适用于此的 XSLT?我已经尝试了几个小时,似乎无法提出解决方案。

编辑:要求尝试...这个 XSLT:

给出了这个输出:

0 投票
1 回答
495 浏览

xml - 使用 XSL 测试节点是否包含转义的 XML?

我正在尝试清理我提供的一批 XML。我需要考虑三种情况:

  1. 某些元素中包含纯文本,例如。<item>some text</item>, 它需要被包裹在另一个标签中,例如。<item><p>some text</p></item>
  2. 一些元素已经在其中转义了 XML,例如。<item>&lt;p>some text&lt;/p></item>,需要在不转义的情况下输出:<item><p>some text</p></item>
  3. 一些元素已经转义了需要包装的 XML,例如。<item>some &lt;em>text&lt;/em></item>需要成为<item><p>some <em>text</em></p></item>

<item>在这两种情况下都用作容器。

我可以相对容易地满足条件一,我可以用 满足条件 2 disable-output-escaping,但我不能用这种方法满足条件 3。

<item>如果我可以测试其中的文本是否被转义,我认为我可以满足 2(可能是 3) ,但使用的测试contains(., '&amp;lt;')不匹配。所以...

如何测试节点中的文本是否为转义 XML?

0 投票
1 回答
131 浏览

xslt - XSL:包装所有后代文本和元素?

给定以下 XML 文档:

我想尝试捕获其中尚未包含speech的所有内容line并将其包装在 a 中line,但是我需要捕获任何其他元素以及它(emphasis例如上面示例中的 the )。

我想要达到的结果是:

我正在使用libxsltand libxml,所以我坚持使用 XSLT 1.0。

0 投票
1 回答
155 浏览

xslt - xsltproc 的意外结果 - libXML

当我们遇到这个问题时,我正在帮助另一个用户。

我有这段 XSLT,我尝试在其中创建两个键,一个是第一次出现(在同一个父级中)的元素在后代中包含给定值,第二个是在后代中所有其他出现的相同值的元素. (抱歉英语不好)

这是第一个键,其目标是为给定的 Record/ID 创建一个具有“第一个兄弟姐妹”的集合,由其 generate-id() 值索引:

在第二个键中,我尝试获取“不是第一个兄弟姐妹”的所有 DapaPage 元素,对于给定的 Record/ID,由具有相同 Record/ID 的“第一个兄弟姐妹”的 generate-id() 索引:

和模板

我用这个 XML 测试了 XSLT:

正如预期的那样,使用 Xalan 对其进行转换,我得到以下结果:

但是,当我使用 libXML xsltproc 时,我只得到这个:

Key2的构造有什么问题,或者这是一个xslproc bug?

0 投票
0 回答
173 浏览

python - 转换结果中的 Python libxml2/libxslt unlinkNode 会产生内存泄漏

我尝试使用 libxslt 转换 XML,然后从转换结果中取消链接节点,但我得到了内存异常。(我知道我可以将 xslt 转换后的结果转换为字符串,然后再将其解析为文档,但我需要直接处理结果 -> 性能问题。)

我的代码:

0 投票
1 回答
117 浏览

php - 如何在 PHP 中设置 LibXslt 以使用单引号呈现某些属性

这是继续需要在单引号 xslt 中分配属性值

问题:'用单引号而不是 double包围属性值"

用例:将 JSON 存储在要作为插件设置等传递的属性中。例如:

G. Ken Holman 回答:

除非您的 XSLT 处理器供应商给您一个扩展来请求这个,否则它不在您的掌控之中。这种序列化选择由处理器做出,不能使用标准化机制在 XSLT 样式表中指定。处理器可能会提供此功能,但我还没有看到(不是我已经看过……从 XML 的角度来看,无论选择何种属性分隔符,结果信息集都不会改变)。

Q1:是否可以在 PHP 中使用 LibXslt 输出单引号?

Q2:如果 Q1 是 Yes,那么是否可以按属性输出?(例如:我只想用单引号呈现一些属性)。

感谢您的时间。

0 投票
2 回答
2183 浏览

perl - cpan XML::LibXSLT 安装失败

我尝试安装 perl 模块 XML::LibXSLT 但它失败了。现在用谷歌搜索了几个小时,但没有任何帮助,所以我发布了这个。也许有人可以帮忙!提前致谢!

'

非常感谢任何帮助!

0 投票
1 回答
206 浏览

perl - XML::LibXSLT 间歇性地引发样式表编译错误

我有一组以前运行良好的 XSLT 样式表。最近,一位开发人员将我们的 Perl 升级到了更新的版本。从那时起,我们就在定义 EXSLT 函数时遇到间歇性样式表编译错误。

以下是错误示例:

元素参数只允许在模板、变量或参数中

该变量在 EXSLT 函数中定义。一旦收到错误,每次我尝试访问我的网页时都会收到错误,直到我重新启动 Apache(与 mod_perl 一起使用)。重启后,我可以让调用 XML::LibXSLT 的网页和 EXSLT 函数正常显示一次,但是重新加载页面会再次触发错误。

阅读 XML::LibXSLT 文档后,我确认 HAVE_EXSLT() 函数返回值 1。我当前的 XML::LibXSLT 版本是 1.79。我的 LibXSLT DLL 是 1.1.28。我的 perl 版本是 5.14.3。之前工作的版本分别是 5.8.8、1.66 和 1.1.22。

为什么我现在看到这些错误,而我以前没有?下面是引发编译错误的样式表的开头片段。如果有任何其他有用的信息可以提供,请告诉我。

其他发现:

在我最初发布这个问题之后,我发现如果我使用普通的旧 CGI 而不是 mod_perl,我根本无法重现该错误。此外,我在我的 Apache httpd.conf 中找到了以下行。在注释掉它时,我看到错误发生的频率急剧下降,尽管它并没有完全消除错误。

0 投票
2 回答
179 浏览

python - libxml:“堆栈使用错误” - 更多信息?

Stack usage error来自 libxml2/libxslt/lxml的原因是什么?

0 投票
2 回答
5892 浏览

python - 如何在 windows7 上安装 libxslt?

当我想安装 lxml 时,它说:

确保安装了 libxml2 和 libxslt 的开发包

所以我已经安装libxml2并下载了libxslt。但我不知道如何安装它。我无法显示图像。

这些是文档中的文件:

acconfig.h aclocal.m4 AUTHORS ChangeLog config.guess config.h.in config.sub configure configure.in 复制 版权所有 depcomp 文档示例 功能 安装 install-sh libexslt libexslt.pc.in libxslt libxslt.m4 libxslt.pc.in libxslt。规格 libxslt.spec.in ltmain.sh Makefile.am Makefile.in 缺少 NEWS python README 测试 TODO vms win32 xslt-config.inxsltConf.sh.in xsltproc