Informix: extractvalue: извлечь значение атрибута n-го элемента, используя XPATH - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь написать хранимую процедуру Informix, которая извлекает некоторые значения элементов XML и значения атрибутов с помощью функции extractvalue.

Как извлечь идентификатор второго человека с помощью xpath в Informix? Я пробовал следующее и его возвращал нуль:

DROP PROCEDURE sp_parse_xml;
CREATE PROCEDURE sp_parse_xml()
RETURNING LVARCHAR(256);

DEFINE l_set SMALLINT;
DEFINE l_node_value LVARCHAR(256);
DEFINE xml_string   LVARCHAR(8000);

LET l_set = 0;

LET xml_string = '<personnel><person id="Jason.Ma"><name><family>Ma</family><given>Jason</given></name></person><person id="12345"><name><family>Smith</family><given>John</given></name></person><person id="67890"><name><family>Cook</family><given>Peter</given></name></person></personnel>';

 LET l_node_value = extractvalue(xml_string, '/personnel/person[2]/@id');
 --RETURN existsnode(xml_string, '/personnel/person[2]/@id');

RETURN l_node_value;

END PROCEDURE;

Спасибо за вашу помощь.

...