2012-05-12 58 views
0

我有这样一个XML文件:有没有办法使用psycopg2 copy_from批量加载XML?

<Library> 
    <Book id="123"> 
    <Title>Python Does Everythig</Title> 
    <Author>Smith</Author> 
    </Book> 

    <Book id="456"> 
    <Title>Postgres is Neat</Title> 
    <Author>Wesson</Author> 
    </Book> 
</Library> 

,我已经得到了使用XSL将XML转换成管道分隔格式的可爱的小Python程序,它使用psycopg2.copy_from然后批量加载,创建每本书一个记录。一切都很好。

但我还想将用于创建书记录的实际XML添加到书本记录本身。换句话说,我希望我的书表,看起来像:

create table book (
    id  integer  not null primary key, 
    title varchar(100) not null, 
    author varchar(100) not null, 
    xml_data xml   not null 
); 

如果我使用SQL插入行,这是很简单:我只想用XMLPARSE (CONTENT ?)

当使用copy_from时,有没有办法做到这一点?

+0

我甚至会想方设法在我的XSL表格中获取当前节点的XML,如果有人知道(value-of似乎去掉XML标签,这是有道理的)。如果我可以在第一遍中存储XML,则可以执行后处理来创建结构化值。 –

回答

0

Copy_from包装PostgreSQL的大容量COPY语句,这不支持(通过这种方式支持csv)。

说实话,我只是解析你的应用程序中的XML,然后将数据发送到数据库。

相关问题