Postgresql 用Postgres解析XML数据
PostgreSQL 9.2.4 我很抱歉,如果我添加了一个重复的主题,但我似乎还没有弄明白。我想解析存储在postgres表中的XML数据 例如:Postgresql 用Postgres解析XML数据,postgresql,xpath,postgresql-9.2,Postgresql,Xpath,Postgresql 9.2,PostgreSQL 9.2.4 我很抱歉,如果我添加了一个重复的主题,但我似乎还没有弄明白。我想解析存储在postgres表中的XML数据 例如: select program_information.description FROM program_information WHERE id = 8768787; 为我提供如下输出: <?xml version="1.0"?> <ProgramInformation> <BasicDescription>
select program_information.description FROM program_information WHERE id = 8768787;
为我提供如下输出:
<?xml version="1.0"?>
<ProgramInformation>
<BasicDescription>
<Title type="original">Zla smrt</Title>
<Synopsis length="short">Pet prijateljev, starih nekaj čez dvajset let, v samotni koči najde Knjigo mrtvih. S posnetka, ki so ga napravili arheologi, izvedo, da je bilo starodavno besedilo odkrito med kandarijskimi ruševinami sumerske civilizacije.</Synopsis>
<Keyword type="secondary"></Keyword>
<ParentalGuidance>
<mpeg7:ParentalRating href="rn:mpeg:MPAAParentalRatingCS:PG">
<mpeg7:Name>PG</mpeg7:Name>
</mpeg7:ParentalRating>
</ParentalGuidance>
<CreditsList>
<CreditsItem role="urn:tva:metadata:TVARoleCS:ACTOR">
<PersonName>
<mpeg7:GivenName>Bruce</mpeg7:GivenName>
<mpeg7:FamilyName>Campbell</mpeg7:FamilyName>
</PersonName>
</CreditsItem>
<CreditsItem role="urn:tva:metadata:TVARoleCS:ACTOR">
<PersonName>
<mpeg7:GivenName>Ellen</mpeg7:GivenName>
<mpeg7:FamilyName>Sandweiss</mpeg7:FamilyName>
</PersonName>
</CreditsItem>
<CreditsItem role="urn:tva:metadata:TVARoleCS:ACTOR">
<PersonName>
<mpeg7:GivenName>Betsy</mpeg7:GivenName>
<mpeg7:FamilyName>Baker</mpeg7:FamilyName>
</PersonName>
</CreditsItem>
<CreditsItem role="urn:tva:metadata:TVARoleCS:DIRECTOR">
<PersonName>
<mpeg7:GivenName>Sam</mpeg7:GivenName>
<mpeg7:FamilyName>Raimi</mpeg7:FamilyName>
</PersonName>
</CreditsItem>
</CreditsList>
<ReleaseInformation>
<ReleaseDate>
<Year>1981</Year>
</ReleaseDate>
</ReleaseInformation>
</BasicDescription>
<AVAttributes>
<AudioAttributes>
<NumOfChannels>2</NumOfChannels>
</AudioAttributes>
</AVAttributes>
</ProgramInformation>
我已经尝试使用xpath,但到目前为止还没有解决方案…:/
有人能告诉我正确的问题吗?谢谢大家!
M您的XML文档缺少名称空间声明。应该是这样吗?我在
中手动添加了一个名称空间,它成功了
<ProgramInformation xmlns:mpeg7="http://mpeg7.io">
您能提供到目前为止一直在尝试的xpath查询吗?还有,名称空间
mpeg7
是否有声明的前缀?我在这个xml文档中也找不到值8768787
。PostgreSQL 9.2.4很抱歉响应太晚。这就是我必须处理的输出。我设法从中获得了标题、概要和评级。你能帮我弄到演员和导演的名字吗,那么给我名字和家庭名字。我就是弄不出来。谢谢
<ProgramInformation xmlns:mpeg7="http://mpeg7.io">
SELECT
XPATH('//BasicDescription/Title/text()', t.xml) AS title,
XPATH('//BasicDescription/Synopsis/text()', t.xml) AS synopsis,
XPATH('//mpeg7:ParentalRating/mpeg7:Name/text()', t.xml,ARRAY[ARRAY['mpeg7', 'http://mpeg4.io']]) AS parentalRating
FROM t;
title | synopsis | parentalrating
--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------
{"Zla smrt"} | {"Pet prijateljev, starih nekaj čez dvajset let, v samotni koči najde Knjigo mrtvih. S posnetka, ki so ga napravili arheologi, izvedo, da je bilo starodavno besedilo odkrito med kandarijskimi ruševinami sumerske civilizacije."} | {PG}
(1 Zeile)