Есть ли способ узнать, существует ли самозакрывающийся (<privacy />) тег XML внутри XML, используя функцию xpath mysql ExtractValue.

Xml - это,

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<employees>
    <employee>
        <privacy />
        <firstName>Brian</firstName>
        <lastName>Schultz</lastName>
    </employee>
</employees>

SP это

CREATE DEFINER=`root`@`%` PROCEDURE `xpath1`(IN xml VARCHAR(10000))
BEGIN
SELECT  ExtractValue(xml, '//employee/firstName/text()');
/*SELECT  ExtractValue(xml, '//employee/privacy');
 SELECT  ExtractValue(xml, '//employee/privacy/text()');*/
END

ExtractValue(xml, '//employee/privacy'); и ExtractValue(xml, '//employee/privacy/text()'); всегда возвращают пустое место в результате с самозакрывающимся тегом или без него.

XML поступает из внешнего приложения. Любая помощь - это здорово ..

1
Abin 20 Май 2021 в 14:47

1 ответ

Лучший ответ

Согласно документации 8.0, вы можете использовать считать так:

SELECT  ExtractValue(xml, 'count(//employee/privacy)'
2
Siebe Jongebloed 20 Май 2021 в 12:15