【发布时间】:2012-09-11 06:41:00
【问题描述】:
输入xml:
<Root>
<RootHeader>Header</RootHeader>
<Reference>
<name>RefName</name>
<value>Header001</value>
</Reference>
<NodeNumber>1</NodeNumber>
<Reference>
<name>RefName</name>
<value>100</value>
</Reference>
<NodeNumber>2</NodeNumber>
<Reference>
<name>RefName</name>
<value>101</value>
</Reference>
<NodeNumber>3</NodeNumber>
<Reference>
<name>RefName</name>
<value>101</value>
</Reference>
<NodeNumber>4</NodeNumber>
<Reference>
<name>RefName</name>
<value>100</value>
</Reference>
<NodeNumber>5</NodeNumber>
<Reference>
<name>RefName</name>
<value>102</value>
</Reference>
</Root>
预期输出:
<Root>
<RootHeader>Header</RootHeader>
<Reference>
<name>RefName</name>
<value>Header001</value>
</Reference>
<GroupingSequenceNumber>1</GroupingSequenceNumber>
<NodeNumber>1</NodeNumber>
<Reference>
<name>RefName</name>
<value>100</value>
</Reference>
<GroupingSequenceNumber>1</GroupingSequenceNumber>
<NodeNumber>2</NodeNumber>
<Reference>
<name>RefName</name>
<value>101</value>
</Reference>
<GroupingSequenceNumber>2</GroupingSequenceNumber>
<NodeNumber>3</NodeNumber>
<Reference>
<name>RefName</name>
<value>100</value>
</Reference>
<GroupingSequenceNumber>3</GroupingSequenceNumber>
<NodeNumber>4</NodeNumber>
<Reference>
<name>RefName</name>
<value>100</value>
</Reference>
<GroupingSequenceNumber>1</GroupingSequenceNumber>
<NodeNumber>5</NodeNumber>
<Reference>
<name>RefName</name>
<value>102</value>
</Reference>
</Root>
如何根据 Root/Reference/Value 进行分组并在输出中添加 Grouping Sequence Number?
在分组中应排除标题中的引用。意味着分组应该在出现 NodeNumber 之后开始。
在此先感谢您。
【问题讨论】:
-
您提供了一个用例,这是一个好的开始。但我还是不明白你的要求。什么是分组,分组条件是什么? GroupingSequenceNumber 的意义是什么? Reference 节点是否应该计入其先前的兄弟 NodeNumber 节点?
-
你好..让我根据输入样本解释一下,根/参考/值包含值 100,101,102...所以应该对这个值应用分组..并且 GroupingSequenceNumber 将包含序列号,比如说对于 Root/Reference/Value = 100,GroupingSequenceNumber = 1,2,3[occurrences of 100]
-
您的解释与提供的示例不符。在输入中,节点 1 和 4 的值为 100。但在您提供的输出中,它们甚至没有组合在一起。
-
感谢您的指正..我已经更正了预期的输出
-
这是 Muenchian 分组的直接案例。 StackOverflow 上有数百个问题,这些问题只是这个问题的轻微变化。当然,很快会有人给你一个具体的答案,但是搜索和阅读以前的问题会对你有所帮助。搜索 Muenchian 或“xslt 分组”。