- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将前同级和后同级与记录子集一起使用,并对它们进行排序。前/后带回原始xml顺序值的问题:
<Salaries>
<Salary>
<Base>1000</Base>
<CreatedDate xmlns:d7p1="http://schemas.datacontract.org/2004/07/System">
<d7p1:DateTime>2016-01-09T14:38:54.8440764Z</d7p1:DateTime>
<d7p1:OffsetMinutes>0</d7p1:OffsetMinutes>
</CreatedDate>
</Salary>
<Salary>
<Base>2000</Base>
<CreatedDate xmlns:d7p1="http://schemas.datacontract.org/2004/07/System">
<d7p1:DateTime>2015-01-09T14:38:54.8440764Z</d7p1:DateTime>
<d7p1:OffsetMinutes>0</d7p1:OffsetMinutes>
</CreatedDate>
</Salary>
<Salary>
<Base>3000</Base>
<CreatedDate xmlns:d7p1="http://schemas.datacontract.org/2004/07/System">
<d7p1:DateTime>2017-01-09T14:38:54.8440764Z</d7p1:DateTime>
<d7p1:OffsetMinutes>0</d7p1:OffsetMinutes>
</CreatedDate>
</Salary>
</Salaries>
例如,当我在 for-each (Salaries/Salary) 下使用排序和 c# 函数将偏移分钟添加到日期中并转换为长数字 201701010000 时(以使 xslt 中的操作更容易)。
<xsl:sort select="number(cs:Convertdatetolong(cs:AddOffsetMinutes(substring(p:CreatedDate/d5p1:DateTime,1,19),p:CreatedDate/d5p1:OffsetMinutes)))" order="ascending"/>
排序完美,我按以下顺序取出记录:
如果我使用前面的兄弟/前面(和后面),就会出现问题。我希望第一条记录(2000)没有前面的记录,最后一条记录(3000)没有后面的记录。但是,当我使用前面/后面时,我会从原始 XML 中获取上一条记录和下一条记录:
我希望能够与上一条记录(按排序顺序)和当前记录(按排序顺序)进行比较:
我已经尝试过前置兄弟和前置
<xsl:value-of select="preceding::p:Salary[1]/p:Base"/>
<xsl:value-of select="preceding-sibling::p:Salary[1]/p:Base"/>
<xsl:value-of select="preceding::p:Salary[position()=1]/p:Base"/>
(工资在不同的命名空间(p)这真的可能吗,还是我必须使用变量来保存以前记录的数据以进行比较?
感谢您的任何想法。我正在使用 xslt 1.0
最佳答案
虽然 XSLT/XPath 经常谈论“节点序列”,但实际上将其视为“节点引用序列”更准确 - 因为,例如,同一个节点可以在序列中出现多次.当您对节点引用序列进行排序时,您不会以任何方式更改单个节点,您只会更改序列。这意味着节点仍然存在于它们原来所在的树中,它们的 parent 、 sibling 和后代都和以前一样。
你想要的不是节点的前后兄弟节点,而是按排序顺序出现在它之前和之后的节点,这是完全不同的东西。
这样做的一种方法是构建一个包含原始节点副本的新树,例如,如果你这样做了,你会得到它
<xsl:variable name="x">
<xsl:for-each ...>
<xsl:sort ...>
<xsl:copy-of select="."/>
复制节点的兄弟关系将反射(reflect)排序顺序。在 XSLT 1.0 中存在一个小问题,$x 是一个结果树片段,因此您必须使用 exslt:node-set() 函数将其转换为节点集。
事实上,在 XSLT 1.0 中,这可能是唯一的方法,因为 XSLT 1.0 数据模型只有节点集,没有序列,这意味着除了文档之外没有其他方法可以捕获和处理节点序列命令。 2.0 模型具有更大的灵 active 和功能。如果可以,请升级 - XSLT 1.0 已接近 20 年。
关于sorting - 使用带有 xsl :sort 的前置兄弟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42806139/
我的目标是运行类似 bro --iface 的命令并只获取 conn.log,但我无法从 Bro 文档或联机帮助页中得知如何执行此操作。 谢谢。 最佳答案 这让你继续: bro -i -b b
我正在使用以下 jQuery 来更改无序列表中元素的类。这似乎不是实现该效果的最有效方法。有更好的写法吗? $(function() { $('nav li a').click( functi
我有一个看起来像这样的导航栏 Services Work Contact 当我 :hover 一项时,我想更改其他两项的样式。我可以使用什么 CSS 选择器? 最佳答案 您
我正在寻找一种方法来选择包含特定图像的列的行内具有特定名称属性的所有输入。 下面的代码是一个说明性示例:
假设我有以下 HTML: 我想在鼠标悬停在元素上时对图标应用一些规则,可以用以下 CSS 描述: .navigation__item__icon { color: black; } .n
我的 div text-button 没有与我在其兄弟 div 下想要的正确边距对齐。我将 position: absolute; 设置到位,因为每次我将其设置为相对位置时,jQuery 动画都不起作
这个问题在这里已经有了答案: CSS margin terror; Margin adds space outside parent element [duplicate] (7 个答案) 关闭
如果我有 3 个 NSManagedObjectContext。 一个。是根上下文。 B.是一个后台保存上下文,解析一个JSON后生成NSManagedObjects C.是在 NSFetchedRe
我在容器中有三个 div:http://jsfiddle.net/fBe9y/ 一个div内容很多。如何让内容较少的其他两个 div 与最长的 div 的高度匹配? 我尝试将 height: 100%
我正在尝试通过单击另一个元素对一个元素执行一个简单的 toggleClass。有多个元素具有相同的类,我只想切换同级/最近的元素。我相信我从根本上理解了针对 parent / child / sibl
我正在使用 AngularJS 开发一个小应用程序。我的项目包含一个包含 3 个 View 的 Body.html 文件:SideMenu、Header 和 Content,每个 View 都有自己的
在 CSS 方面,我不认为我是个笨蛋,但这个就是我。我的想法是我需要一个父元素,两侧有两个 float 子元素。我希望 parent 的高度与 child 的高度一样高,并让 child 的高度变得相
我有两个 span(s) 在父级 div 中彼此相邻。 我希望第二个 span 显示在最左边,然后是第一个 span。 (注意:由于某些原因,我不能简单地移动第二个跨度来代
今天跟大家分享下selenium中根据父子、兄弟、相邻节点定位的方法,很多人在实际应用中会遇到想定位的节点无法直接定位,需要通过附近节点来相对定位的问题,但从父节点定位子节点容易,从子节点定位父节点
这是 HTML 的结构:
我在一个包装器中并排放置了两个 div。其中一个 div 的内容比另一个多,我希望第二个 div 填充包装的垂直空间。 .wrapper { height: 50%; width: 50%;
我的网站顶部有一个带有此 CSS 的菜单: .menu { width: 100%; display: block; float: left; } 在里面,我有几个 div: .menu .menu-
我有两个 div 元素,第一个 div 中有一个按钮,如下所示。 Click 下面是我的 JavaScript 代码。 function nextDiv(el
两个同级 div(#one 和 #two),每个都包含一些文本。 我移动#two margin-top 为负,预计它会覆盖 #one , 但当文本位于 #one 前面时,背景位于下方。 只有在 #on
我有一个容器 div,它有一个 float 的左侧导航 Pane 和一个右侧的内容 Pane : CSS: body { text-align: cent
我是一名优秀的程序员,十分优秀!