使用XSLT基于属性值对元素进行分组的最佳方法是什么? 使用XSLT 2.0或更高版本会更好吗?
非常感谢您的帮助
托马斯
原始XML:
<transaction>
<record type="1" >
<field number="1" >
<item >223</item>
</field>
</record>
<record type="14" >
<field number="1" >
<item >777</item>
</field>
</record>
<record type="14" >
<field number="1" >
<item >555</item>
</field>
</record>
</transaction>
分组后的结果:
<transaction>
<records type="1" >
<record type="1" >
<field number="1" >
<item >223</item>
</field>
</record>
</records>
<records type="14" >
<record type="14" >
<field number="1" >
<item >777</item>
</field>
</record>
<record type="14" >
<field number="1" >
<item >555</item>
</field>
</record>
</records>
</transaction>
答案 0 :(得分:0)
在XSLT 2.0中,您可以使用public class MyApplication extends MultiDexApplication {
private AppComponent appComponent;
private static MyApplication appInstance;
public static MyApplication get() {
return appInstance;
}
@Override
public void onCreate() {
super.onCreate();
appInstance = this;
setupAppComponent();
}
private void setupAppComponent() {
appComponent = DaggerAppComponent.builder()
.appModule(new AppModule(this))
.userApiModule(new UserApiModule())
.build();
appComponent.inject(this);
}
public synchronized AppComponent getAppComponent() {
if (appComponent == null)
setupAppComponent();
return appComponent;
}
}
,但如果您要执行xsl:for-each-group
,那么您必须在此时位于<xsl:for-each-group select="record" group-by="@type">
记录上。
此外,您需要使用transaction
来获取群组中的所有current-group
元素。
试试这个XSLT
record