根据字段值拆分/过滤XML

时间:2018-07-07 18:46:03

标签: xslt

我需要根据class ='G'的字段值进行过滤。

<Root>
<Record>
    <emp>
        <empid>1</empid>
        ...
        <empInfo>
            <class>S</class>
            ...
        </empInfo>
        <empInfo>
            <class>G</class>
            ...
        </empInfo>
        <empInfo>
            <class>G</class>
            ...
        </empInfo>
    </emp>
</Record>
<Record>
    <emp>
        <empid>2</empid>
        ...
        <empInfo>
            <class>S</class>
            ...
        </empInfo>
        <empInfo>
            <class>S</class>
            ...
        </empInfo>
    </emp>
</Record>
<Record>
    <emp>
        <empid>3</empid>
        ...
        <empInfo>
            <class>S</class>
            ...
        </empInfo>
    </emp>
</Record>
</Root>

如果上面的xml甚至有一个'G'记录,则应该将每个Record分开。因此,对于此仅1条记录,应返回empid ='1'

<Root>
<Record>
    <emp>
        <empid>1</empid>
        ...
        <empInfo>
            <class>ST</class>
            ...
        </empInfo>
        <empInfo>
            <class>G</class>
            ...
        </empInfo>
        <empInfo>
            <class>G</class>
            ...
        </empInfo>
    </emp>
</Record><Root>

我尝试使用,但是没有返回完整的记录,而是将其拆分为否。标签。

请提出建议。

1 个答案:

答案 0 :(得分:0)

如果您只是想从输入文档中选择某些节点,那么带有谓词{{​​1}}的XPath表达式就足够了,因此在XSLT上下文中,您所需要的只是

Record[emp/empInfo/class = 'G']