简体   繁体   English

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

[英]Extracted XML content from postgres not recognized in R

I use a substring query in PostGresql to generate the following output. 我在PostGresql中使用子字符串查询来生成以下输出。

I used this in the dbGetQuery in R studio: 我在R studio的dbGetQuery中使用了此功能:

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

The Output is: 输出为:

<?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>

When I try: 当我尝试:

file2 = xmlParse("SA_Data_1")

I get an error: 我收到一个错误:

Error: XML content does not seem to be XML: 'SA_Data_1' 错误:XML内容似乎不是XML:“ SA_Data_1”

Can someone help me? 有人能帮我吗? My first post here.. :) 我的第一篇文章在这里.. :)

You need to save the output. 您需要保存输出。 I'm guessing you really mean to do: 我猜你真的打算这样做:

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

assuming this returns the XML as a character string, then you can do 假设这将XML作为字符串返回,那么您可以

SA_parsed = xmlParse(SA_Data_1$substring)

to get a parsed version of the XML. 获得XML的解析版本。 Then you can extract bits from it using the rest of the XML package. 然后,您可以使用XML包的其余部分从中提取位。

file2 = xmlParse("SA_Data_1")

fails because its interpreting "SA_Data_1" as a piece of XML, which it isn't. 失败,因为它将“ SA_Data_1”解释为不是的XML。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM