【发布时间】:2017-12-12 18:31:59
【问题描述】:
我需要创建一个额外的 XML 标记,比如 myGroup &,因为我需要创建来自我输入的每个 ID_Number 的组。
这是我的输入:
<mySegment>
<Field1>AB</Field1>
<Field2>AB</Field2>
<Field3>AB</Field3>
<Field4>AB</Field4>
<ID_Number>1</ID_Number>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
</mySegment>
<mySegment>
<Field1>AB</Field1>
<Field2>AB</Field2>
<Field3>AB</Field3>
<Field4>AB</Field4>
<ID_Number>2</ID_Number>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
</mySegment>
<mySegment>
<Field1>AB</Field1>
<Field2>AB</Field2>
<Field3>AB</Field3>
<Field4>AB</Field4>
<ID_Number>2</ID_Number>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
</mySegment>
<mySegment>
<Field1>AB</Field1>
<Field2>AB</Field2>
<Field3>AB</Field3>
<Field4>AB</Field4>
<ID_Number>3</ID_Number>
</mySegment>
<mySegment>
<Field1>AB</Field1>
<Field2>AB</Field2>
<Field3>AB</Field3>
<Field4>AB</Field4>
<ID_Number>3</ID_Number>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
</mySegment>
我想根据 ID_Numbers 创建组,以便所有具有公共 ID 的 mySegments 都位于 myGroup 标记下:
<myGroup>
<mySegment>
<Field1>AB</Field1>
<Field2>AB</Field2>
<Field3>AB</Field3>
<Field4>AB</Field4>
<ID_Number>1</ID_Number>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
</mySegment>
</myGroup>
<myGroup>
<mySegment>
<Field1>AB</Field1>
<Field2>AB</Field2>
<Field3>AB</Field3>
<Field4>AB</Field4>
<ID_Number>2</ID_Number>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
</mySegment>
<mySegment>
<Field1>AB</Field1>
<Field2>AB</Field2>
<Field3>AB</Field3>
<Field4>AB</Field4>
<ID_Number>2</ID_Number>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
</mySegment>
</myGroup>
<myGroup>
<mySegment>
<Field1>AB</Field1>
<Field2>AB</Field2>
<Field3>AB</Field3>
<Field4>AB</Field4>
<ID_Number>3</ID_Number>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
</mySegment>
<mySegment>
<Field1>AB</Field1>
<Field2>AB</Field2>
<Field3>AB</Field3>
<Field4>AB</Field4>
<ID_Number>3</ID_Number>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
<child>
<Field5>AB</Field5>
<Field6>AB</Field6>
<Field7>AB</Field7>
</child>
</mySegment>
<myGroup>
我知道使用 XSLT 可以轻松完成,但我必须使用 Groovy 来实现。请告知这是否可以由 Groovy 完成。我已经尝试过以下链接,但不确定如何将它们应用于我的案例。 Grouping and sorting nested collections in Groovy
【问题讨论】:
-
我从未使用过 Groovy,但作为 Java 平台的脚本语言,您不能只使用 Java 类/库来进行 XSLT 处理,例如 Sun/Oracle JRE 中内置的 Xalan 或 Saxon 9,在 Maven 上可用?
-
在 groovy @MartinHonnen 中更容易。 Tpi,你能想出一个更容易理解的例子吗?也许在 XML 中有根节点?
-
Tim,我有一个名为 ID_Number 的字段。我需要创建具有共同 ID_Numbers 的段组,并且需要添加额外的标签来识别具有不同 ID 的元素