Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 获取具有ExtractValue的XML字符串中的节点名称?_Mysql_Xml_Stored Procedures_Xpath - Fatal编程技术网

Mysql 获取具有ExtractValue的XML字符串中的节点名称?

Mysql 获取具有ExtractValue的XML字符串中的节点名称?,mysql,xml,stored-procedures,xpath,Mysql,Xml,Stored Procedures,Xpath,在MySQL中,是否可以在XML中获取节点名称 我在存储过程中使用以下方法来迭代XML的节点,但使用此方法只能获取值,而不能获取节点名称: DECLARE i INT DEFAULT 1; DECLARE nrows INT DEFAULT 1; DECLARE rownum INT DEFAULT 1; DECLARE vTag VARCHAR(100) DEFAULT ''; DECLARE returnvalue TEXT DEFAULT ''; DECLARE paramXML TEX

在MySQL中,是否可以在XML中获取节点名称

我在存储过程中使用以下方法来迭代XML的节点,但使用此方法只能获取值,而不能获取节点名称:

DECLARE i INT DEFAULT 1;
DECLARE nrows INT DEFAULT 1;
DECLARE rownum INT DEFAULT 1;
DECLARE vTag VARCHAR(100) DEFAULT '';
DECLARE returnvalue TEXT DEFAULT '';

DECLARE paramXML TEXT DEFAULT '<fields><a>1</a><b>2</b><c>3</c></fields>';

SET nrows = ExtractValue(paramXML, 'count(//fields/*)');
SET rownum = 1;

WHILE rownum <= nrows DO
  SET vTag= ExtractValue(paramXML, '//fields/*[$rownum]');

    SET returnvalue=CONCAT(returnvalue, vTag, ';');

  SET rownum = rownum + 1;
END WHILE;

SELECT returnvalue;

MySQL目前只有非常基本的XML处理函数。如以下文件所述:

重要的 仅返回CDATA,不返回可能包含在匹配标记中的任何标记,也不返回其任何内容。请参见以下示例中作为val1返回的结果

您可以安装合适的UDF,例如