В настоящее время у меня есть интересный многослойный вложенный XML, который я хочу извлечь из использования Java.Оптимальный способ извлечь значение из соседнего узла во вложенном XML с использованием Java
Все узлы в этом XML имеют общие теги, и каждый тег имеет общее ключевое слово.
Значение, которое я хочу извлечь, - это много слоев глубоко, и способ идентифицировать его не по его ключевому слову, которое является ключевым словом «NumericalValue» (есть много узлов с одним и тем же ключевым словом).
Существует над ним узел (тот же слой, но есть> = 1 узел над ним), который имеет общее ключевое слово «WordRepresentation» (есть много узлов с одним и тем же ключевым словом) и значение «Идентификатор клиента». Мы точно знаем, что если существует значение «Идентификатор клиента», один или несколько узлов ниже, мы найдем ключевое слово «NumericalValue» и значение.
Итак, логика для извлечения значения, которое я хочу: сначала разверните вложенный XML, пока не найду уровень, содержащий значение «Идентификатор клиента», а затем как-то запомните этот уровень и на том же уровне, продолжайте навигацию к следующий узел, пока не найду ключевое слово «NumericValue», и запишите значение.
Есть ли хороший способ или хороший инструмент для поиска внутри вложенного XML для определенного значения и для перехода на один уровень для второго поиска?
Ниже приведен пример XML:
<xml>
<layer 1>
<layer 2>
</layer 2>
<layer 2>
<layer 3>
<layer 4>
<layer 5>
<layer 6>
<layer 7 keyword=WordRepresentaion>
<Value>Customer ID</Value>
</layer 7>
...
<layer 7 keyword=NumbericalValue>
<Value>453</Value>
</layer7>
...
</layer 6>
</layer 5>
</layer 4>
</layer 3>
</layer 2>
...
...
<layer 2>
</layer 2>
<layer 2>
</layer 2>
</layer 1>
Спасибо за вашу помощь
Спасибо за ваш ответ. Чтобы немного уточнить, я пытаюсь извлечь значение узла с ключевым словом «NumericalValue». Но поскольку есть много узлов с этим ключевым словом, я должен посмотреть один или несколько узлов над ним на одном уровне, чтобы увидеть, есть ли еще один узел со значением «Идентификатор клиента». – 000000000000000000000
@ 000000000000000000000 Я думаю, что пример кода в моем ответе делает это. Другим подходом будет поиск непосредственно для узлов «keyword = NumericalValue» и просмотр узлов над ним, чтобы увидеть, есть ли у них значение «Идентификатор клиента». Я отправлю пример, который делает это в ближайшее время. – Titus