无法使用xpath查询获取数据

时间:2014-02-04 16:21:50

标签: xpath sql-server-2008-r2

我怎么才能得到我的xml数据库字段中的ProcedureID = 6104的行?

<CDirData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://Fnet.ESB.Schemas.CentroDirectivo.CDirData">
  <ProcedureData xmlns="">
    <ProcedureId>6104</ProcedureId>
    <CentroDirectivo>SGRP</CentroDirectivo>
  </ProcedureData>
  <SolicitudData xmlns="">
    <SolicitudId>MFom635230432391710791</SolicitudId>
    <Status>Iniciado</Status>

我一直在尝试像

这样的东西
WITH XMLNAMESPACES (
    'http://www.w3.org/2001/XMLSchema-instance' AS "xsi",
    'http://www.w3.org/2001/XMLSchema' AS "xsd",
    'http://Fnet.ESB.Schemas.CentroDirectivo.CDirData' AS "de") 

SELECT [Message].value(
'(/de:CDirData/de:ProcedureData/de:ProcedureId)[1]', 'nvarch

但始终返回空行...

提前致谢

1 个答案:

答案 0 :(得分:2)

此处的复杂性是在根目录中定义的默认命名空间。

一种解决方法是根据local-name

定义查询
//*[local-name()='ProcedureId' and text()='6104']