Sql server 如何在postgres中解析xml字符串

Sql server 如何在postgres中解析xml字符串,sql-server,xml,postgresql,xml-parsing,Sql Server,Xml,Postgresql,Xml Parsing,在ms sql中,我有以下代码: ALTER PROCEDURE [dbo].[xmlDictamen_Alta] @Xml text as begin declare @Id integer declare @DictamenId numeric(18,0) declare @DocumentoId numeric(18,0) declare @Descripcion varchar(300) begin set nocount on

在ms sql中,我有以下代码:

ALTER PROCEDURE [dbo].[xmlDictamen_Alta]
  @Xml text
as begin

declare @Id            integer
declare @DictamenId    numeric(18,0)
declare @DocumentoId   numeric(18,0)
declare @Descripcion   varchar(300)

begin

    set nocount on
    exec dbo.sp_xml_preparedocument @Id output, @Xml

    select 
        @DocumentId  = DocumentId,
        @Description = IsNull( Description, ''),
    from 
    OpenXml( @IdXml, '/Parameter', 2) with (
    DocumentId       numeric(18,0),
    Description      varchar(300)
    )

    exec dbo.sp_xml_removedocument @IdXml


/*
execute xmlDictamen_Alta
'
    <Parameter>
      <DocumentId>1328</DocumentId>
      <Description>Descripcion</Description>
    </Parameter>
'
*/

如何将这些存储过程移植到postgres???

在PostgreSQl中,xml函数很弱。但您可以使用plperU过程来实现这一点

create or replace function proc_parse_xml(xml text) return setof tp_docs as $$

use XML::DOM;

my $pr = new XML::DOM::Parser;
my $xmldocs = $pr->parse(xml);

......

return;
 $$ language plperlU;