我已经在这里询问过关于同一个文件的类似问题(XML - 使用 XSLT 将标签组合到子项)。不幸的是,我的 XML 已经增长,所以我再次需要您的帮助。
<?xml version="1.0"?>
<ROWSET>
<ROW>
<KUNDENNR>63564</KUNDENNR>
<JAHR>2012</JAHR>
<MONAT>2</MONAT>
<NAME>John Doe</NAME>
<NETTO>504,66</NETTO>
<DB_BASIS>21,56</DB_BASIS>
<EKECHT>482,56</EKECHT>
<NAME1>Some Name</NAME1>
<NAME2>BA 31 (BÜRO GGR 1)</NAME2>
<LAND>AT</LAND>
<PLZ>1082</PLZ>
<ORT>Wien</ORT>
<ADM>Henry Ford</ADM>
<KUNDENKLASSE>A</KUNDENKLASSE>
<UEBERKUNDE>Some Value</UEBERKUNDE>
<HANDLING>22,577179011</HANDLING>
<SOLLFRACHT>22,68</SOLLFRACHT>
<DG_BASIS_P>-10,763888888888888888888888888888888889</DG_BASIS_P>
</ROW>
<ROW>
<KUNDENNR>63564</KUNDENNR>
<JAHR>2011</JAHR>
<MONAT>1</MONAT>
<NAME>John Doe</NAME>
<NETTO>502,66</NETTO>
<DB_BASIS>21,56</DB_BASIS>
<EKECHT>482,56</EKECHT>
<NAME1>Some Name</NAME1>
<NAME2>BA 31 (BÜRO GGR 1)</NAME2>
<LAND>AT</LAND>
<PLZ>1082</PLZ>
<ORT>Wien</ORT>
<ADM>Henry Ford</ADM>
<KUNDENKLASSE>A</KUNDENKLASSE>
<UEBERKUNDE>Some value</UEBERKUNDE>
<HANDLING>22,577179011</HANDLING>
<SOLLFRACHT>22,68</SOLLFRACHT>
<DG_BASIS_P>-10,538888888888888888889</DG_BASIS_P>
<HGID>342</HGID>
<HGNAME>Some product name</HGNAME>
</ROW>
<ROW>
<KUNDENNR>63564</KUNDENNR>
<JAHR>2011</JAHR>
<MONAT>1</MONAT>
<NAME>John Doe</NAME>
<NETTO>217,66</NETTO>
<DB_BASIS>21,56</DB_BASIS>
<EKECHT>482,56</EKECHT>
<NAME1>Some Name</NAME1>
<NAME2>BA 31 (BÜRO GGR 1)</NAME2>
<LAND>AT</LAND>
<PLZ>1082</PLZ>
<ORT>Wien</ORT>
<ADM>Henry Ford</ADM>
<KUNDENKLASSE>A</KUNDENKLASSE>
<UEBERKUNDE>Some value</UEBERKUNDE>
<HANDLING>22,577179011</HANDLING>
<SOLLFRACHT>22,68</SOLLFRACHT>
<DG_BASIS_P>-10,538888888888888888889</DG_BASIS_P>
<HGID>342</HGID>
<HGNAME>Some product name</HGNAME>
</ROW>
</ROWSET>
已添加字段 HGID 和 HGNAME,最终 XML 输出应如下所示:
<?xml version="1.0"?>
<ROWSET>
<KUNDE>
<KUNDENNR>63564</KUNDENNR>
<NAME>John Doe</NAME>
<NAME1>Some Name</NAME1>
<NAME2>BA 31 (B RO GGR 1)</NAME2>
<LAND>AT</LAND>
<PLZ>1082</PLZ>
<ORT>Wien</ORT>
<ADM>Henry Ford</ADM>
<KUNDENKLASSE>A</KUNDENKLASSE>
<UEBERKUNDE>Some Value</UEBERKUNDE>
<ROW>
<JAHR>2012</JAHR>
<MONAT>2</MONAT>
<DB_BASIS>21,56</DB_BASIS>
<EKECHT>482,56</EKECHT>
<HANDLING>22,577179011</HANDLING>
<SOLLFRACHT>22,68</SOLLFRACHT>
<DG_BASIS_P>4,27218325209051638727063765703642056038</DG_BASIS_P>
<WGROUPITEM>
<HGID>125</HGID>
<HGNAME>Another product name</HGNAME>
<NETTO>504,66</NETTO>
</WGROUPITEM>
</ROW>
<ROW>
<JAHR>2012</JAHR>
<MONAT>1</MONAT>
<NETTO>502,66</NETTO>
<DB_BASIS>21,56</DB_BASIS>
<EKECHT>482,56</EKECHT>
<HANDLING>22,577179011</HANDLING>
<SOLLFRACHT>22,68</SOLLFRACHT>
<DG_BASIS_P>-10,538888888888888888889</DG_BASIS_P>
<WGROUPITEM>
<HGID>359</HGID>
<HGNAME>Some other product name</HGNAME>
<NETTO>502,66</NETTO>
</WGROUPITEM>
<WGROUPITEM>
<HGID>342</HGID>
<HGNAME>Some product name</HGNAME>
<NETTO>217,66</NETTO>
</WGROUPITEM>
</ROW>
</KUNDE>
</ROWSET>
所以基本上我需要按 MONAT 和 JAHR(月和年)对这些 HGNAME、HGID 和 NETTO 字段进行分组。我已经尝试从前面提到的帖子中修改那个 XSL 文件,但我没有运气。我遇到的问题是我无法通过 MONAT 和 JAHR 正确分组,我总是得到所有记录或没有记录:-(。
编辑:另外,我想找到类似的 UEBERKUNDE 条目并将它们分组为父项,所以它看起来像
<ROWSET>
<UEBERKUNDE>
<NAME>Some value</NAME>
<KUNDE>
<KUNDENNR>63564</KUNDENNR>
.......
</KUNDE>
</UEBERKUNDE>
如果有人可以帮助我,那就太棒了。
提前致谢。