Subject: [xsl] Comparing node-sets or groups. Deep-equal with an exception? From: "Flanders, Charles E (US) charles.flanders@xxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 6 Nov 2019 14:49:50 -0000 |
I need help with an issue that I haven't come across before and I'm not even sure that I have the subject correct. I am working with XSLT 2.0. Please no 3.0 solutions. I have a long list of <mac-group-2lvl> structures as below. Most are unique. However in some cases, they are identical except for the "ref" attribute value on the <teref> element. I need to walk down through these <mac-group-2lvl> node-sets or groups, determine if they are identical, except for the aforementioned "ref" attribute on <teref>. If they are identical, I need to move or copy the <teref> element to the first node-set, then delete the second and any succeeding "duplicate" sets. The "duplicate" sets will always be immediately following siblings. Input: <mac> <mac-group-2lvl> <groupno>011201</groupno> <compassemgroup-2lvl> <compassem> <name>Item Name</name> </compassem> <qualify-2lvl> <maintfunc func="replace"/> <maintclass-2lvl> <f>0.70</f> </maintclass-2lvl> <terefs> <teref refs="tools61"/> </terefs> </qualify-2lvl> </compassemgroup-2lvl> </mac-group-2lvl> <mac-group-2lvl> <groupno>011201</groupno> <compassemgroup-2lvl> <compassem> <name>Item Name</name> </compassem> <qualify-2lvl> <maintfunc func="replace"/> <maintclass-2lvl> <f>0.70</f> </maintclass-2lvl> <terefs> <teref refs="tools63"/> </terefs> </qualify-2lvl> </compassemgroup-2lvl> </mac-group-2lvl> <mac-group-2lvl> <groupno>011201</groupno> <compassemgroup-2lvl> <compassem> <name>Item Name</name> </compassem> <qualify-2lvl> <maintfunc func="replace"/> <maintclass-2lvl> <f>0.70</f> </maintclass-2lvl> <terefs> <teref refs="tools16"/> </terefs> </qualify-2lvl> </compassemgroup-2lvl> </mac-group-2lvl> <mac-group-2lvl> <groupno>0112</groupno> <compassemgroup-2lvl> <compassem> <name>A Thing Name</name> </compassem> <qualify-2lvl> <maintfunc func="replace"/> <maintclass-2lvl> <f>0.60</f> </maintclass-2lvl> <terefs> <teref refs="tools61"/> </terefs> </qualify-2lvl> </compassemgroup-2lvl> </mac-group-2lvl> </mac> Needed output: <mac> <mac-group-2lvl> <groupno>011201</groupno> <compassemgroup-2lvl> <compassem> <name>Item Name</name> </compassem> <qualify-2lvl> <maintfunc func="replace"/> <maintclass-2lvl> <f>0.70</f> </maintclass-2lvl> <terefs> <teref refs="tools61"/> <teref refs="tools63"/> <teref refs="tools16"/> </terefs> </qualify-2lvl> </compassemgroup-2lvl> </mac-group-2lvl> <mac-group-2lvl> <groupno>0112</groupno> <compassemgroup-2lvl> <compassem> <name>A Thing Name</name> </compassem> <qualify-2lvl> <maintfunc func="replace"/> <maintclass-2lvl> <f>0.60</f> </maintclass-2lvl> <terefs> <teref refs="tools61"/> </terefs> </qualify-2lvl> </compassemgroup-2lvl> </mac-group-2lvl> </mac> C Flanders
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] White space strategies fo, Wendell Piez wapiez@ | Thread | Re: [xsl] Comparing node-sets or gr, Martin Honnen martin |
Re: [xsl] White space strategies fo, Wendell Piez wapiez@ | Date | Re: [xsl] Comparing node-sets or gr, Martin Honnen martin |
Month |