Предполагая, что XML правильно сформирован и не содержит ошибок (, XML в вопросе содержит ошибки )и что Response
является корневым узлом документа, используя XMLStarlet:
$ xmlstarlet sel -t -c '/Response[ParticipantID="12346789"]' -nl file.xml
ID:c3e2
2018
ABC
12346789
RU
19010101
Это вернет вам копию документа, если узел /Response/ParticipantID
имеет значение 12346789
.
Запрос XPATH /Response[ParticipantID="12346789"]
выберет узел Response
, но только если его ParticipantID
имеет указанное значение. Флаг -c
для xmlstarlet
запрашивает копию (, в отличие от -v
, который возвращает значения ).
Are there any ways to fix this problem?
Нет, мы ничего не можем сделать. Тем не менее, есть несколько вариантов для вас: