我的挑战是我必须将值/值标签中的所有内容分组。<Value ID="0" AttributeID="att_X">0 - AAAAA</Value>
当其中有一个带有 AAAAA 的值时,我必须对每个标签进行分组。值 0 - AAAAA、23 - AAAAA B、12 - AAAAA C 必须在输出消息中组合在一起,最好的方法是什么?
我试图将它分组
<xsl:for-each-group select="Entity/Values/Value[@AttributeID='att_PVPP']" group-by="substring-before(substring-after(Entity/Values/Value[@AttributeID='att_X'], '- '), ' ') ='AAAAA'">
也试过
<xsl:for-each-group select="Entity/Values/Value[@AttributeID='att_PVPP']" group-by="matches(Entity/Values/Value[@AttributeID='att_X'], 'AAAAA')">
和
<xsl:for-each select="matches(Entity/Values/Value[@AttributeID='att_X'], 'AAAAA')">
我有以下输入xml:
<Entities>
<Entity Referenced="true" Selected="false" ParentID="P" UserTypeID="V" ID="PVP-1">
<Name>123456 - 0</Name>
<Values>
<Value AttributeID="att_PVPS">2020-10-06</Value>
<Value AttributeID="att_PVPP">123456</Value>
<Value ID="0" AttributeID="att_X">0 - AAAAA</Value>
<Value AttributeID="att_PVPEi">2020-10-06</Value>
<Value UnitID="Y.unit." AttributeID="C">10</Value>
<Value ID="2" AttributeID="att_Z">A</Value>
</Values>
</Entity>
<Entity Referenced="true" Selected="false" ParentID="W" UserTypeID="V" ID="PVP-2">
<Name>789012 - 200</Name>
<Values>
<Value AttributeID="att_PVPS">2020-09-16</Value>
<Value AttributeID="att_PVPP">789012</Value>
<Value ID="200" AttributeID="att_X">200 - BBBBB</Value>
<Value AttributeID="att_PVPEi">2020-10-22</Value>
<Value UnitID="Y.unit." AttributeID="C">200</Value>
<Value ID="2" AttributeID="att_Z">A</Value>
</Values>
</Entity>
<Entity Referenced="true" Selected="false" ParentID="W" UserTypeID="V" ID="PVP-3">
<Name>123456 - 0</Name>
<Values>
<Value AttributeID="att_PVPS">2020-10-07</Value>
<Value AttributeID="att_PVPP">123456</Value>
<Value ID="0" AttributeID="att_X">0 - BBBBB</Value>
<Value AttributeID="att_PVPEi">2020-10-13</Value>
<Value UnitID="Y.unit." AttributeID="C">1</Value>
<Value ID="2" AttributeID="att_Z">A</Value>
</Values>
</Entity>
<Entity Referenced="true" Selected="false" ParentID="W" UserTypeID="V" ID="PVP-4">
<Name>123456 - 23</Name>
<Values>
<Value AttributeID="att_PVPS">2020-10-16</Value>
<Value AttributeID="att_PVPP">123456</Value>
<Value ID="23" AttributeID="att_X">23 - AAAAA B</Value>
<Value AttributeID="att_PVPEi">2020-10-21</Value>
<Value UnitID="Y.unit." AttributeID="C">1</Value>
<Value ID="3" AttributeID="att_Z">C</Value>
</Values>
</Entity>
<Entity Referenced="true" Selected="false" ParentID="W" UserTypeID="V" ID="PVP-5">
<Name>123456 - 12</Name>
<Values>
<Value AttributeID="att_PVPS">2020-10-14</Value>
<Value AttributeID="att_PVPP">123456</Value>
<Value ID="12" AttributeID="att_X">12 - AAAAA C</Value>
<Value AttributeID="att_PVPEi">2020-10-16</Value>
<Value UnitID="Y.unit." AttributeID="C">15</Value>
<Value ID="2" AttributeID="att_Z">A</Value>
</Values>
</Entity>
</Entities>
输出必须是:
<test>
<test1>
<value-ID-att_X-att_X>0</value-ID-att_X>
<lines>
<line>
<att_PVPS>2020-10-06</att_PVPS>
<AttributeID-C>10</AttributeID-C>
<value-ID-att_Z>2</value-ID-att_Z>
</line>
</lines>
</test1>
<test1>
<value-ID-att_X>23</value-ID-att_X>
<lines>
<line>
<att_PVPS>2020-10-16</att_PVPS>
<AttributeID-C>1</AttributeID-C>
<value-ID-att_Z>3</value-ID-att_Z>
</line>
</lines>
</test1>
<test1>
<value-ID-att_X>12</value-ID-att_X>
<lines>
<line>
<att_PVPS>2020-10-14</att_PVPS>
<AttributeID-C>15</AttributeID-C>
<value-ID-att_Z>2</value-ID-att_Z>
</line>
</lines>
</test1>
</test>