我有以下xml

  <ns8:vehicles>
                <ns8:vehicle vinNumber="asdaqwe" model="lambda" make="xdeee">
                    <ns8:registration number="e123asdz23" date="2016-07-22"/>
                    <ns8:usage type="Passenger"/>
                </ns8:vehicle>
            </ns8:vehicles>


并尝试在查询中使用extractValue获取元素vinNumber和注册号
所以我正在做这样的事情:

select ExtractValue(databasexmlfield, '//ns8:vehicle//ns8:registration')
select ExtractValue(databasexmlfield, '//ns8:vehicle//ns8:registration number')
select ExtractValue(databasexmlfield, '//ns8:vehicle//ns8:registration::number')


这些工作均不返回xpath错误或返回0数据。
我该如何工作?

像这样显示xml时,它正在工作:

<holder id="1">
    <title>Mr</title>


所以当我输入select ExtractValue(databasexmlfield,'// holder // title')
它打印先生。
MySQL版本是最新的5.5

最佳答案

尝试:

SELECT
  ExtractValue(@`xml`, '//ns8:vehicle/attribute::vinNumber'),
  ExtractValue(@`xml`, '//ns8:vehicle/ns8:registration/attribute::number');


请参见db-fiddle

09-08 06:15