我正在尝试编写一个Informix存储过程,该过程使用extractvalue函数提取一些xml元素值和属性值。
如何在Informix中使用xpath提取第二个人的ID?我尝试了以下操作,并返回了null:
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;
感谢您的帮助。