Как удалить пустые теги XML, сгенерированные из-за нулевого ввода в IIB - ESQL - PullRequest
0 голосов
/ 16 апреля 2020

Работа в E SQL вычислительных узлах - IIB. У меня есть путь ввода, такой как пункт назначения / адрес / страна, который равен NULL ie Тег страны не доступен внутри пункта назначения / адреса для нескольких входов. В выводе XML CountryDes c имеет только дочерний элемент «Страна». Если поле ввода равно NULL, CountryDes c также не должно создаваться.

SET OutputRoot.XMLNSC.Parcel.Arr_Address.CountryDesc.Country = InputRoot.XMLNSC.Destination.Address.Country;

Но у вывода есть пустой тег, <CountryDesc/>. Как устранить эту генерацию пустых тегов, не используя условие IF, например IF Destination.Address.Country IS NOT NULL AND TRIM(Destination.Address.Country) <> '' THEN --assign

Я думал о процедуре, которая будет анализировать все узлы и удалять пустой дочерний элемент. Пожалуйста, предложите.

1 Ответ

0 голосов
/ 17 апреля 2020

Во-первых, вы должны знать, что слово 'null' имеет значение c, означающее при обсуждении форматов данных. Это может быть полезно:

  • Пусто: поле существует и имеет значение, соответствующее типу данных поля. Значение нулевой длины. Возможно только для строковых полей, потому что (например) целое число нулевой длины не является допустимым целым числом.
  • Null: поле существует и имеет специальное допустимое значение, которое сигнализирует о том, что значение не должно обрабатываться в нормальный способ. В XML это делается путем включения атрибута xsi:nil="true"
  • Отсутствует: поле вообще отсутствует во входных данных

Ваш вопрос об удалении пустых тегов хороший, и на MQSeries ответили. net: http://www.mqseries.net/phpBB2/viewtopic.php?t=14579

Я бы посоветовал осторожность; Я не использовал и не проверял код, размещенный в этой теме, и вам следует тщательно его протестировать.

...