带名称空间的PostgresSQL xpath

带名称空间的PostgresSQL xpath,sql,xml,postgresql,xpath,namespaces,Sql,Xml,Postgresql,Xpath,Namespaces,我想知道如何在以下示例中使用xpath函数: xml位于名为SR_DATA的表中,字段XMLDATA的类型为TEXT 以下是xml文档的结构: 我的查询没有引发任何错误,但结果集为空;我想我必须映射名称空间,但我需要一个如何映射的提示。您需要在xpath函数中指定名称空间。该节点包含多个文本节点;您可以使用array_to_string函数将节点组合在一起: 选择trimdeath FROM array_to_stringxpath'/x:modulo/x:AAAAA/text',XMLDATA

我想知道如何在以下示例中使用xpath函数:

xml位于名为SR_DATA的表中,字段XMLDATA的类型为TEXT

以下是xml文档的结构:


我的查询没有引发任何错误,但结果集为空;我想我必须映射名称空间,但我需要一个如何映射的提示。

您需要在xpath函数中指定名称空间。该节点包含多个文本节点;您可以使用array_to_string函数将节点组合在一起:

选择trimdeath FROM array_to_stringxpath'/x:modulo/x:AAAAA/text',XMLDATA::xml,array[ 数组['x','http://www.expr.com/2008/FMSchema'] ], 从SR_数据 -假的 不管出于什么原因,xmlns在这里是有问题的:但我不知道为什么。这里已经描述了这个问题,但没有解决方案
<?xml version="1.0" encoding="UTF-8"?>
<modulo modelCodeScheme="DocType" modelCodeSchemeVersion="01" modelCodeValue="TYPE_20a" modelCodeMeaning="SCREENING" group="groupname" type="format" xmlns="http://www.expr.com/2008/FMSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <AAAAA modelCodeScheme="MAM" modelCodeSchemeVersion="1" modelCodeValue="AN_MAM_6" modelCodeMeaning="Family1" tipodato="booleano">
        <![CDATA[false]]>
    </AAAAA>
    <BBBBB modelCodeScheme="MAM" modelCodeSchemeVersion="1" modelCodeValue="AN_MAM_8" modelCodeMeaning="Family2" tipodato="booleano">
        <![CDATA[false]]>
    </BBBBB>
</modulo>
SELECT (xpath('/modulo/AAAAA/text()', XMLDATA::xml) AS status
FROM SR_DATA;