0

我有以下 xml 有效负载。

<ClientList>
<Client>
    ............................
    ....n number of elements....
    ............................
    <EmployerList>
        <Employer>
            ............................
            ....n number of elements....
            ............................
            <LocationList>
                <Location></Location>
                <Location></Location>
                <Location></Location>

        <Employer>
            ............................
            ....n number of elements....
            ............................
            <LocationList>
                <Location></Location>
                <Location></Location>
                <Location></Location>

<Client>
    ............................
    ....n number of elements....
    ............................
    <EmployerList>
        <Employer>
            ............................
            ....n number of elements....
            ............................
            <LocationList>
                <Location></Location>
                <Location></Location>
                <Location></Location>

        <Employer>
            ............................
            ....n number of elements....
            ............................
            <LocationList>
                <Location></Location>
                <Location></Location>
                <Location></Location>

位置具有 locationId 元素。根据我手头的输入 locationId,我只需要过滤位置。如何在不迭代/重新映射数千个其他元素(称为“n 个元素”)的情况下完全删除不匹配的位置元素

4

1 回答 1

0

假设xml不是很清楚,可能的解决方案是:
1.可以使用xpath过滤器。例如:。
参考:https
: //blogs.mulesoft.com/dev/anypoint-platform-dev/using-xpath-expressions-on-an-xml-document-with-namespaces/ 2. 也可以使用 jaxb。将 xml 转换为 Java Bean 并根据所需位置进行过滤,并使用过滤器详细信息创建新的 xml 文件(仅在需要时)。

于 2018-02-23T07:11:43.013 回答