如何仅输出少量节点

时间:2016-07-29 22:08:35

标签: xml xslt xslt-1.0

我有xml进来如下。

<Result>
    <customer>
        <id>123</id>
        <lastName>John1</lastName>
        <firstName>Doe1</firstName>
        <phone>1234578900</phone>
    </customer>
    <customer>
        <id>456</id>
        <lastName>John2</lastName>
        <firstName>Doe2</firstName>
        <phone>1234587900</phone>
    </customer>
    <customer>
        <id>789</id>
        <lastName>John3</lastName>
        <firstName>Doe3</firstName>
        <phone>1234467900</phone>
    </customer>
    <customer>
        <id>012</id>
        <lastName>John4</lastName>
        <firstName>Doe4</firstName>
        <phone>1236567900</phone>
    </customer>
    <customer>
        <id>235</id>
        <lastName>John5</lastName>
        <firstName>Doe5</firstName>
        <phone>1232567900</phone>
    </customer>
    <customer>
        <id>568</id>
        <lastName>John6</lastName>
        <firstName>Doe6</firstName>
        <phone>1237567900</phone>
    </customer>
</Result>

我只需要输出5个客户结果。 如果请求少于5个客户,那么我需要输出所有。但如果请求超过5,我只需要输出5个结果。 如何使用样式表

实现这一目标

输出:

<Result>
    <customer>
        <id>123</id>
        <lastName>John1</lastName>
    </customer>
    <customer>
        <id>456</id>
        <lastName>John2</lastName>
    </customer>
    <customer>
        <id>789</id>
        <lastName>John3</lastName>
    </customer>
    <customer>
        <id>012</id>
        <lastName>John4</lastName>
    </customer>
    <customer>
        <id>235</id>
        <lastName>John5</lastName>
    </customer>
</Result>

1 个答案:

答案 0 :(得分:1)

这很简单:

XSLT 1.0

powershell -noprofile -command "$Input | % { [text.encoding]::utf8.GetString([Console]::InputEncoding.GetBytes($_)) } | Select-Object -Last %COUNT%"