如何在xslt中进行嵌套分组

时间:2019-10-16 12:31:23

标签: xml xslt xslt-2.0 xslt-grouping

下面是xml

<Report>
    <ReportBody>
        <Level type="Assessment-Area" name="Etch">
            <Level type="Issue" Issue-Severity="Critical">
                <Level type="Issue" Issue-Severity="Critical">
                    <Level type="Issue" Issue-Severity="Critical">
                        <Level type="Checklist" name="CEDM - IPC Rules::High-Dense">
                            <Level type="Action" name="Padstack Analysis (High-Dense)" Checklist="CEDM - IPC Rules::High-Dense" Model="High-Dense">
                                <Level type="Category" name="abc" Range="*:via2toep;XX_w = 4.675 4.921 5.167 ">
                                    <Measurement LocationY="5.9547242" Layer="signal_1" Net1="$NONE$" name="CEDM - IPC Rules::High-Dense-11-signal_1-127--1-42" Component2="U56" Overview="some value" image="some_base 64 code">
                                    </Measurement>
                                </Level>
                            </Level>
                        </Level>
                    </Level>
                </Level>
            </Level>
            <Level type="Issue" Issue-Severity="Critical">
                <Level type="Issue" Issue-Severity="Critical">
                    <Level type="Issue" Issue-Severity="Critical">
                        <Level type="Checklist" name="CEDM - IPC Rules::High-Dense">
                            <Level type="Action" name="Padstack Analysis (High-Dense)" Checklist="CEDM - IPC Rules::High-Dense" Model="High-Dense">
                                <Level type="Category" name="xyz" Range="*:via2toep;XX_w = 4.675 4.921 5.167 ">
                                    <Measurement LocationY="5.9547242" Layer="signal_2" Net1="$NONE$" name="CEDM - IPC Rules::High-Dense-11-signal_1-127--1-42" Component2="U56" Overview="some value" image="some_base 64 code">
                                    </Measurement>
                                </Level>
                            </Level>
                        </Level>
                    </Level>
                </Level>
            </Level>
            <Level type="Issue" Issue-Severity="Critical">
                <Level type="Issue" Issue-Severity="Critical">
                    <Level type="Issue" Issue-Severity="Critical">
                        <Level type="Checklist" name="CEDM - IPC Rules::High-Dense">
                            <Level type="Action" name="Padstack Analysis (High-Dense)" Checklist="CEDM - IPC Rules::High-Dense" Model="High-Dense">
                                <Level type="Category" name="abc" Range="*:via2toep;XX_w = 4.675 4.921 5.167 ">
                                    <Measurement LocationY="5.9547242" Layer="signal_2" Net1="$NONE$" name="CEDM - IPC Rules::High-Dense-11-signal_1-127--1-42" Component2="U56" Overview="some value" image="some_base 64 code">
                                    </Measurement>
                                </Level>
                            </Level>
                        </Level>
                    </Level>
                </Level>
            </Level>
            <Level type="Issue" Issue-Severity="Critical">
                <Level type="Issue" Issue-Severity="Critical">
                    <Level type="Issue" Issue-Severity="Critical">
                        <Level type="Checklist" name="CEDM - IPC Rules::High-Dense">
                            <Level type="Action" name="Padstack Analysis (High-Dense)" Checklist="CEDM - IPC Rules::High-Dense" Model="High-Dense">
                                <Level type="Category" name="xyz" Range="*:via2toep;XX_w = 4.675 4.921 5.167 ">
                                    <Measurement LocationY="5.9547242" Layer="signal_2" Net1="$NONE$" name="i" Component2="U56" Overview="some value" image="some_base 64 code">
                                    </Measurement>
                                </Level>
                            </Level>
                        </Level>
                    </Level>
                </Level>
            </Level>
        </Level>
    </ReportBody>
</Report>

我是xslt的新手。所以我尝试了几种在Google上找到的方法。但它不起作用。

我想对“ Measurement”标签中显示的所有基本64图像进行分组 然后将在“级别”标签内具有相同“名称”属性的那些图像分组,这些图像位于“测量”标签的正上方。

1 个答案:

答案 0 :(得分:1)

您所需的输出不太清楚,但是在下面的示例中,您将获得按其父级别的名称分组的度量。

然后,我刚刚复制了Measurement节点,但是您可以选择仅保留所需的属性。

    

<stdlib.h>