2017-01-16 23 views
0

Может кто-то помочь мне в создании ниже структуры XML с помощью ESQL в IIBESQL XML Создание в МИБ

Вход:

<animal> 
    <animaldomestic>dog<animaldomestic> 
    <animalwild>cheetah<animalwild> 
</animal> 

Выход:

<animals> 
    <animal type="domestic">cow</animal> 
    <animal type="wild">cheetah</animal> 
</animals> 
+0

Sorry Стивен. Я начинающий разработчик ESQL. Я довольно запутался в создании вышеуказанной структуры. – ranaa

+0

Предполагая, что вы пытаетесь создать таблицу под названием «Животные», в которой будут записаны записи для Lion и Cheetah, что будет легко сделать, но вам нужно будет сделать это. Попробуйте найти документацию ESQL для создания базы данных/таблицы. http://www.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.sqls.doc/ids_sqs_0228.htm –

+0

Спасибо за ваш вход steven. Но я использую промежуточное ПО IIB, где мне нужно использовать ESQL в вычислительном узле для преобразования входного xml в формат выше xml. – ranaa

ответ

0

Я нашел решение для этого. Пожалуйста, найдите приведенный ниже код:

SET OutputRoot.XMLNSC.animals.animal[1].(XMLNSC.Attribute)type = 'domestic'; 
SET OutputRoot.XMLNSC.animals.animal[1]VALUE = InputRoot.XMLNSC.animal.animaldomestic; 
SET OutputRoot.XMLNSC.animals.animal[2].(XMLNSC.Attribute)type = 'wild'; 
SET OutputRoot.XMLNSC.animals.animal[2]VALUE = InputRoot.XMLNSC.animal.animalwild; 
3

SET OuputRoot.XMLNSC.animals. (XMLNSC.Attribute) animal = 'internal'; SET OutputRoot.XMLNSC.animals.animal = 'cow';

SET OuputRoot.XMLNSC.animals. (XMLNSC.Attribute) animal = 'wild'; SET OutputRoot.XMLNSC.animals.animal = 'cheetah';

1

Если вы хотите универсальный код:

DECLARE animal REFERENCE TO InputRoot.XMLNSC.animal.*[>]; 
DECLARE type CHAR; 
DECLARE I INTEGER 1; 
WHILE LASTMOVE(animal) DO 
    SET type = SUBSTRING(FIELDNAME(animal) AFTER 'animal'); 
    SET OutputRoot.XMLNSC.animals.animal[I] = FIELDVALUE(animal); 
    SET OutputRoot.XMLNSC.animals.animal[I].(XMLNSC.Attribute)type = type; 
    SET I = I + 1; 
    SET type = ''; 
    MOVE animal NEXTSIBLING; 
END WHILE;