Выражение Xpath для пропуска корня и получения значения поля - PullRequest
0 голосов
/ 25 сентября 2019

В моем Java-приложении я обрабатываю сообщения request и confirmed очереди.Поля, которые я сопоставляю с моей объектной моделью Java, идентичны в обоих сообщениях.Например:

Запрос:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<request>
    <trade id = "XXX">
        <tradeHeader>
            ...
            <tradeDate>2019-09-20</tradeDate>
        </tradeHeader>
        <repo>
            ...
            <bond id="ISIN">
                <instrumentId>
                    GB00BXXX
                </instrumentId>
            </bond>
        </repo>
    </trade>
</request>

Подтверждено:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<confirmed>
    <trade id = "XXX">
        <tradeHeader>
            ...
            <tradeDate>2019-09-20</tradeDate>
        </tradeHeader>
        <repo>
            ...
            <bond id="ISIN">
                <instrumentId>
                    GB00BXXX
                </instrumentId>
            </bond>
        </repo>
    </trade>
</confirmed>

Для каждого интересующего меня поля у меня есть реализации, предоставляющие выражение XPathизвлечь данные из XML.Например:

public class InstrumentIdParser extends SomeMessageMapper {

    private static final String ID_XPATH = ""; // This is where I need some help with :) 

    //Constructor

    @Override
    public JavaObjectModel parse(final String payload,
                                     final JavaObjectModel model) {
        final String id = parse(payload);

        return JavaObjectModel(model)
                .build();
    }

    @Override
    protected String getExpression() {
        return ID_XPATH;
    }
}

Я хочу использовать тот же самый маппер, что и для обработки сообщений request, а также confirmed.Что бы было выражением XPath, которое мне нужно было бы использовать, чтобы пропустить корни request и confirmed, поэтому для получения значения <instrumentId>?

1 Ответ

1 голос
/ 25 сентября 2019
//trade/repo/bond/instrumentId

или

//instrumentId
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...