парсинг универсального XML-файла, не зная точного пространства имен - PullRequest
0 голосов
/ 16 февраля 2012

У меня проблема с анализом xml-ответа, который я получаю в результате запроса SOAP в приложении Java.

Запрос обслуживается, и ответ представляет собой xml-файл, пространство имен которого может изменятьсявремя от времени, однако тэг, следующий за пространством имен, не меняется.

Например, если тэг, то «состояние» не изменяется ни при каких условиях, меняется только префикс пространства имен «ххх».1006 * Итак, вопрос: есть ли способ получить значение этого тега, не зная деталей пространства имен ('xxx') ??

заранее спасибо ..

1 Ответ

0 голосов
/ 17 февраля 2012

Если URI пространства имен не изменяется, но префикс меняется, вы можете просто добавить URI к своим xpaths (для чего-то вроде / S: Envelope / S: Body / ns1: someContentElement):

/*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Envelope']/*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Body']/*[namespace-uri()='http://service.example.com/' and local-name()='someContentElement']

Немного многословно, но обойдется с изменяющимся префиксом пространства имен

...