从R中未识别的postgres中提取的XML内容

时间:2014-08-12 08:24:17

标签: xml r postgresql

我在PostGresql中使用子字符串查询来生成以下输出。

我在R studio的dbGetQuery中使用了它:

dbGetQuery(con, "SELECT substring(response from 11 for       position('</ConsumerEnquiry>'     in response) + 8)  FROM za.scoring_result where id in (334)")

输出是:

<?xml version="1.0"?>
<ConsumerEnquiry>
 <Session>
  <User_ID>ROCK1</User_ID>
  <FullName>ROCK1</FullName>
  <GroupName>014828</GroupName>
  <Subscriber_ID>14828</Subscriber_ID>
  <Group_ID>014828</Group_ID>
  <RequestType>XML2</RequestType>
  <Environment>PRODUCTION</Environment>
  <Version>1.0.0</Version>
 </Session>
</ConsumerEnquiry>

当我尝试:

file2 = xmlParse("SA_Data_1")

我收到错误:

错误:XML内容似乎不是XML:&#39; SA_Data_1&#39;

有人能帮助我吗?我在这里的第一篇文章.. :)

1 个答案:

答案 0 :(得分:1)

您需要保存输出。我猜你真的很想做:

SA_Data_1 = dbGetQuery(con,
   "SELECT substring(response from 11 for  position('</ConsumerEnquiry>' in response) + 8)  
    FROM za.scoring_result where id in (334)")

假设这会将XML作为字符串返回,那么您可以执行

SA_parsed = xmlParse(SA_Data_1$substring)

获取XML的解析版本。然后,您可以使用XML包的其余部分从中提取位。

file2 = xmlParse("SA_Data_1")

失败,因为它将“SA_Data_1”解释为XML的一部分,而不是。