我在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;
有人能帮助我吗?我在这里的第一篇文章.. :)
答案 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的一部分,而不是。