如何在postgres中解析xml字符串

时间:2010-10-26 03:10:12

标签: 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
    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 ???

1 个答案:

答案 0 :(得分:2)

在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;