【发布时间】:2016-09-13 09:56:17
【问题描述】:
我有一个包含数千行的 XML 列。每行包含一个元数据文件的 xml 表示。
如何从每一行中提取多个 xml 字段? 我想我需要使用 xpath (https://www.postgresql.org/docs/current/static/functions-xml.html),但是给定的示例不足以让我理解它。
假设在“xml”表中名为“data”的行中有这个:
> <gmd:MD_Metadata xmlns:gmd="http://www.isotc211.org/2005/gmd"
> xmlns:gco="http://www.isotc211.org/2005/gco"
> xmlns:gml="http://www.opengis.net/gml"
> xmlns:xlink="http://www.w3.org/1999/xlink"
> xmlns:geonet="http://www.fao.org/geonetwork"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://www.isotc211.org/2005/gmd
> something.com/schemas/inspire/gmd/gmd.xsd">
> <gmd:contact>
> <gmd:CI_ResponsibleParty>
> <gmd:organisationName>
> <gco:CharacterString>Something</gco:CharacterString>
> </gmd:organisationName>
> <gmd:contactInfo>
> <gmd:CI_Contact>
> <gmd:address>
> <gmd:CI_Address>
> <gmd:electronicMailAddress>
> <gco:CharacterString>something@something.com</gco:CharacterString>
> </gmd:electronicMailAddress>
> </gmd:CI_Address>
> </gmd:address>
> </gmd:CI_Contact>
> </gmd:contactInfo>
> </gmd:CI_ResponsibleParty>
> </gmd:contact>
如何获取 xml 列中所有行的组织名称和电子邮件地址?查询作为 select 语句会是什么样子?
【问题讨论】:
标签: xml postgresql xpath