问题标签 [node-set]
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.
xslt-2.0 - XSLT 2 - 来自全局参数的节点集
我花了很多时间在谷歌上搜索,但没有找到答案或解决方案。在 XSLT 2 中,可以将变量强制转换为节点集。所以像这样的工作。
输出是
但是当我尝试这个
并将值<element><subelement>A</subelement><subelement>B</subelement></element>
作为参数“par”传递给 XSLT 处理器(Saxon,Altova),然后出现错误:
好的,我可以没有它,但我只是想知道为什么 xsl:variable 和 xsl:param 在这方面表现不同。
xslt - detect availability of node-set() function in xslt implementation of icecast server
Icecast contains an XSLT implementation based on libxslt from xmlsoft.
I want to know if it supports the node-set() function, preferably in a way that works for other web-only environments too:
Regrettably, the XSLT processor in icecast is only web accessible through the web interface of the icecast process (so no xsltproc on the commandline). To worsen it: there is limited logging of the XSLT errors (when you do things wrong, the icecast process often just dies).
I'm running icecast 2.3.2 as that is the latest Windows based build (there is no 2.3.3 build for Windows yet), which has libxslt.dll dated in 2008. There is no version number in the DLL, the best I can provide is this (see XSLT code at the bottom):
I tried running the node-set detection mentioned at David Carlisle's blog article The EXSLT node-set function pointed to by "How to use node-set function in a platform-independent way?".
From the output, I think that fails:
What would be the best way to find out through an XSL file in the web-interface?
Version script:
node-set script I tried:
xpath - confusion with Node Set Function - 'ID'
When the argument to id is of type node-set, then the result is the union of the result of applying id to the string-value of each of the nodes in the argument node-set.
I didn't get the above lines from the doc. May I have one example to understand the same ?
Thanks
xslt - 两个节点集结果的联合导致重复的集合成员
我使用的是 xslt 1.0,我需要两个变量的联合,这意味着我必须使用节点集函数。
下面的测试用例创建了单个节点与包含该节点的集合的联合。由于 A 包含 B,联合操作应该返回 B。但是我得到了一个带有重复 A 的新集合。
如果我直接使用 xpath,则 union 会按预期运行。如果我使用变量和节点集函数,我会遇到意想不到的情况。我的场景要求我使用节点集。我已经尽可能地简化了测试用例。
这是xml内容:
这是xslt:
如何在两个 node-set() 调用上应用联合?
string - 在 XSLT 1.0 中添加值和组合字符串
也许有人可以帮我解决这个问题。我已经在网上搜索了一段时间,但我找不到解决方案
我想按供应商合并发票,添加金额并连接发票编号。
如果 InvoiceNo 的值为“###”,我只想添加金额。
我可以创建一个添加金额的 xslt,但还无法弄清楚发票号码的串联是如何工作的。
XML 输入:
预期结果:
至今:
xml - IE 和 Chrome 中的 XSLT 函数 exslt:object-type
EXSLT 为 XSLT 提供了一组有用的扩展。可能我们大多数人都使用过 exslt:node-set 函数。EXSLT 指定的另一个函数之一是“exslt:object-type”。不幸的是,大多数浏览器(Firefox 除外)似乎不支持此功能。参考: http: //greenbytes.de/tech/tc/xslt/ 虽然我设法在 IE 中使用脚本实现了这个功能,但我似乎没有找到适用于 Google Chrome 的解决方法。(这是 IE 似乎优于 Chrome 的时代之一)。
我的应用程序的主要目标是找出参数是否是“节点集”。或者更准确地说 - 如果可以在 xsl:apply-templates 中选择参数。
IE 实现可能与以下类似:
所以问题是 - 如何在谷歌浏览器中做类似的事情。
请理解,解决方案不是手动重写源样式表,因为这应该是完全自动化的过程。
我的场景如下:代理提交 XML + XSLT,该过程自动重写 XSLT 以将 xsl:value-of 转换为 xsl:apply-templates。虽然 xsl:value-of 的 select 属性的类型无关紧要,但当 select 属性无法解析为节点集时,xsl:apply-templates 将失败。
xml - 解析已传递到模板中的变量的子元素
数据.xml:
myxslt2.xslt
输出:
有人可以解释为什么内部不解决子元素而外部解决?
xml - 如何在遍历节点集时引用源 XML?
我有以下 XSLT 样式表(简化):
这指的是以下源 XML 文档(也已简化):
对源文档的引用不会产生任何结果;输出只是空元素,每个类别一个:
如何用源文档中的项目“填充”元素?
澄清一下,这背后的“真正”问题已经通过不同的方法解决了。我只是想了解为什么这种方法不起作用。
html - 要在路径表达式中使用结果树片段,首先使用 msxsl:node-set() 函数将其转换为节点集
我有以下 XSLT 代码:
……
HtmlPermulations 的值如下:
但是当我试图在这个 for-each 循环中使用它时:
我收到此错误消息:
要在路径表达式中使用结果树片段,首先使用 msxsl:node-set() 函数将其转换为节点集。
任何人都可以帮忙吗?
xml - 使用节点集并使用前兄弟轴的递归模板
我有一些这样的 XML:
而且我需要将所有<stage>
元素提升一个级别以成为 s 的兄弟姐妹,将<sp>
s 分解,<sp>
以便元素与 s 中的<stage>
其他元素保持其前后关系<sp>
,例如
我一直在研究 XSLT 来做到这一点。它包括一个递归模板,该模板旨在使用<sp>
最多(但不包括)第一个子元素的所有子元素,<stage>
并将它们作为 new 的子元素在结果树中发出<sp>
。然后发出第一个<stage>
元素。然后递归第一个元素之后的所有<stage>
元素。最终,当子元素列表中没有<stage>
s 时,所有剩余的元素都会在结果树中的 new 中发出<sp>
。这是代码,包括调试<xsl:message>
s:
然后像这样调用这个模板:
问题在于我的使用$stage/preceding-sibling::*
,我的意思是只处理当前$content
节点集中在当前节点之前的$stage
节点。实际发生的是,在每次递归调用中,所有在当前$stage
节点之前的节点<sp>
都被 this 选中$stage/preceding-sibling::*
。尽管递归调用$content
每次都获得正确的新节点集并且该$stage
节点是从该正确的$content
节点集中获取的,但这是事实。
为了澄清,在上面的示例 XML 的情况下,当<stage>To Antony</stage>
是$stage
节点并且$content
节点只包含:
该$stage/preceding-sibling::*
表达式仍然产生原来的所有子代.<sp>
<stage>To Antony</stage>
我想一定有一些preceding-sibling
我没有正确理解的东西。有什么建议么?或者甚至有什么完全不同的方式来实现转型的建议?