问题标签 [xslkey]

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 回答
37 浏览

xslkey - 多个元素的 xsl-key 问题

我正在尝试显示不同部门的 HoursofOperation,我有一个模板适用于单个 HoursofOperation 元素,但它没有给出预期的结果。代码如下

XML:-

输出:-

服务时间:周一、周二、周三、周四、周五、周六、周日、周日7:00 - 6:00 销售时间:周一、周二、周三、周四、周五8:30am - 7:00pm周六10:00am - 6:00pm周日11:00am - 下午 6:00

模板对于 Sales HoursOfOperation 元素工作正常,但对于服务它没有按预期工作。我不明白这个 select 语句到底在做什么<xsl:for-each select="DaysOfWeek[count(. | key('similarDays', concat(AvailabilityStartTimeMeasure, '|', AvailabilityEndTimeMeasure))[1]) = 1]">

期望的输出:-

0 投票
2 回答
899 浏览

xml - 如何使用键引用节点——XSLT

给定以下 xml 文档...

我创建了一个键来获取每个系列中第一支球队的名称属性,并且我正在尝试循环并列出每个系列的每个名称,如下所示;我目前没有返回任何结果,也不确定我的参考价值有什么问题?...

预期输出将是...

我提供的 xml 数据仅包含 2 个系列元素,而实际上有数百个。该密钥用于加快转换过程,并与其他密钥一起生成我的结果文档。

0 投票
2 回答
2037 浏览

xml - XML/XSLT - xsl:key concat

我有以下XML代码:

以及以下XSL代码:

XSL 转换课程 1仅显示。但从逻辑上讲,课程 2也应显示。
在什么错误?

0 投票
1 回答
109 浏览

xslt - XPath 在 CALS 模型中查找跨行

我正在构建一个处理大量 XML 文件的过程,查找 CALS 模型表(大多数文件至少包含一个),然后将表格数据存储回数据库。在第一种情况下,这些表中的许多表会有不同的结构,但我想使用数据库来分析结构的共性。我在下面列出了来自示例文件的(不完整的)摘录。

由于我知道在此过程中会遇到不同的结构,因此除了将其存储为具有以下属性的实体之外,我无法在数据库中创建将保存所有这些数据的表模式:

  • doc_id
  • table_id
  • row_id
  • col_id
  • col_name
  • col_units
  • 入口值

这将允许我将字符串和数值存储为字符串。

在某些情况下,需要的附加属性是上面示例中跨行行中定义的“类别”,位于 tbody/row[1]。在这里,原始文档创建者添加了一个跨越来对紧随其后的行进行分类:

这些跨行给我带来了一些困难。在它们出现的地方,它们对后面的行进行“分类”,直到出现下一个跨越

我最初的文档分析表明,与这些跨式相关的表结构有多种可能的“类型”:

  • 类型 1. 表格中不出现跨式 - 简单且易于处理
  • 类型 2. tbody 中的第一行是一个跨式,并且在 tbody 下方有零个或多个进一步的跨式
  • 类型 3. 表包含跨接但不在 tbody 的第一行

类型 3“可以”被视为 2 个单独的表,类型 1 之一(所有行直到但不包括第一个跨行)和类型 2(从第一个跨行向前的所有行)

所以看来解决这个处理问题的关键是确定第一个跨接的位置,将跨接之前的所有内容(零行或多行)视为Type1,并将跨接前的所有内容视为Type 2。

但是我在确定第一个跨骑的位置时遇到了一些困难。我对 1st straddle 的定义——用 Xpath 术语来说——是

这允许跨式并不总是从第 1 列键入,并且并不总是延伸到最后一列。这两种可能性确实存在于现实世界的数据中。

所以我的问题仍然可以追溯到确定第一跨的位置。

此页面上列出了许多类似的解决方案 http://www.dpawson.co.uk/xsl/sect2/flatfile.html#d5010e13

但是我很难将它们应用到我的实例中。

这样的事情可能会奏效

但我不确定用什么来定义键的@use 属性?

当我尝试定义一个第一跨变量时,我没有定义值传递给 key() 函数?

如何找到第一个跨栏的位置?

提前致谢

附加说明: ![在浏览器中呈现的示例表的屏幕截图] https://dl.dropboxusercontent.com/u/5065004/Screen%20Shot%202014-02-25%20at%2013.54.08.png 上面的屏幕截图显示了在浏览器中呈现的示例表。跨行“分类”以下行中的数据 - 一直到下一个跨行。@nasmest 和@nameend 属性定义标题跨接的列数,而不是下一个跨接前的行数。后一个值是标记中的 IMPLICIT 并且是我正在搜索的 XPath 语句。前者 - 跨列 - 在标记中是明确的。

0 投票
1 回答
407 浏览

xml - XSLT:用其他文档的等效节点替换节点

我想用另一个 XML 文件的等效节点替换 XML 文件的某些节点。由于这不够具有挑战性,我希望用于比较的 ID 是某个孩子的值。

“旧” XML 看起来像:

第二个文档应替换为以下 XML 的等效项,其中我必须使用的 ID 是 document_id 的值(因为有时会覆盖或更改 Document 节点的“id”):

结果预计如下所示:

Q1:这可以通过 XSLT 实现吗?还是我必须使用 Java / DOM?

Q2:如果 Q1==yes :有人可以在这里解决吗?

最好的!菲利普

0 投票
2 回答
437 浏览

xml - XSLT 2.0 - 使用键的不同值

我在处理 XSLT 工作表时遇到了一些麻烦。这是我的 XML 文档:

我想要的是有这种输出 XML :

今天,我使用这个 XSLT 来执行这个转换:

我得到了这个结果:

所以我的问题是我想选择不同的大小值,但它似乎不起作用。我试过使用 generate-id() 但我不太明白它是如何工作的,所以我没有得到很好的结果:(知道如何解决这个问题吗?谢谢!

0 投票
1 回答
731 浏览

xslt - How can I merge nodes based on the value of an attribute?

After a first xsl transformation I have a xml output similar to the following one:

But now I need to obtain a second output where file nodes are merged if they have the same path attribute as follows:

I don't know possible @pathvalues in advance.

I looked at multiple posts about nodes merging but could not find a way to do what I want. I'm lost with nodes grouping, keys, id generation... and only obtained error messages so far.

Could you please help me to get the 2nd output starting from the first one (with xls 1.0) ? And if you could provide some references (websites) where I could find explanations about such kind of transformations it would be really great.

Note : the @nb attribute of two line nodes of two file nodes having the same @path never collide, it is unique, i.e. this will never happen :

Thank you a lot for your help !

0 投票
1 回答
193 浏览

xml - XSLT 1.0 多键交叉引用和合并

感谢您花时间看我的问题。

我有一个输入结构(如下),其中每一行代表从一个位置项到另一个位置项的移动。所以每一行都有一个从位置和一个到位置。

目标是嵌套的 xml,其中位置对象具有一些标题和项目级别信息。我需要从所有行中选择不同的位置并映射它们的项目级别详细信息。

输入和所需转换输出的示例。

我有一个平面数据库提取 xml,看起来像

转换后的输出需要

现在我已经尝试了许多使用 Keys 的选项并生成 id。所以请看一下并指出我哪里出错了。或者如果有更好的方法来实现这个输出。

我创建了 4 个键

我的 XSLT 执行以下逻辑

我哪里错了?任何帮助是极大的赞赏。

提前致谢。

0 投票
1 回答
52 浏览

xml - XSLT xsl:key - 从报告中排除输入

`

`

我不想将 Mango 包含在报告中,因为状态是已交付到具有相同 ProductCode、Price 和 Status 的另一个状态。

预期输出:

ProductCode Fruit Price 111 Apple 34 222 Papaya 5

0 投票
1 回答
382 浏览

xslt - 与命名空间匹配的 XSLT 键

我有一个使用命名空间的 XSD 文档,简化为:

我需要处理该文件中的类型依赖关系,因为我有以下 XSL(再次简化为最小示例):

如果我在输入 XSD 文件中没有命名空间(即,如果我删除“xns”),则输出如预期:

(Type1 显示为 Type 2 的依赖项,Type2 显示为 Type3 的依赖项)

但是,对于命名空间,输出为空,类型名称显然不匹配。即使像示例中那样使用命名空间,是否也可以管理它?(我不知道如何更改 key() 以匹配默认使用“targetNamespace”的 complexType,因此没有在“name”中明确指定它)