From: | Mark O'Connor <mark(at)tellcare(dot)com> |
---|---|
To: | Nathan Hill <cmsu_tech(at)yahoo(dot)com> |
Subject: | Re: XML to Postgres conversion |
Date: | 2002-07-11 09:30:35 |
Message-ID: | 3D2D503B.9000301@tellcare.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
This is just to demonstrate how XSLT can come to your rescue (You will
obviously have to adapt the approach).
The following stylesheet will generate a series of SQL inserts.
I use the sablotron XSLT transformer but really any suitable program
should work.
Regards,
MArk
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<!--
Assumes the XML file has a series of Operating_system tags
-->
<xsl:template match="/">
<xsl:apply-templates select="//Operating_system"/>
</xsl:template>
<!--
Generate a SQL INSERT for each "Operating_system" tag
-->
<xsl:template match="Operating_system">
INSERT INTO computers (
Name,
Major_version,
Minor_version,
Build_number,
Platform_ID,
Additional_information,
User_name,
Boot_time,
Registered_to,
Registration_code
VALUES (
'<xsl:value-of select="Name"/>',
'<xsl:value-of select="Major_version"/>',
'<xsl:value-of select="Minor_version"/>',
'<xsl:value-of select="Build_number"/>',
'<xsl:value-of select="Platform_ID"/>',
'<xsl:value-of select="Additional_information"/>',
'<xsl:value-of select="User_name"/>',
'<xsl:value-of select="Boot_time"/>',
'<xsl:value-of select="Registered_to"/>',
'<xsl:value-of select="Registration_code"/>');
</xsl:template>
</xsl:stylesheet>
Nathan Hill wrote:
> Here is a snippit of code from one of the xml files:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <Computer>
> <Created_on>2002/07/09 11:09:41</Created_on>
> <Client_version>1.8.9</Client_version>
> <General_info>
Please note that this tag is not closed!!!!
> <Operating_system>
> <Name>Microsoft Windows XP</Name>
> <Major_version>5</Major_version>
> <Minor_version>1</Minor_version>
> <Build_number>2600</Build_number>
> <Platform_ID>2</Platform_ID>
>
> <Additional_information></Additional_information>
> <User_name>someone</User_name>
> <Boot_time>07/09/2002 09:04:21</Boot_time>
> <Registered_to>registered</Registered_to>
>
> <Registration_code>534574-345-7467453-74538</Registration_code>
> </Operating_system>
> </Computer>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Vince Vielhaber | 2002-07-11 09:31:10 | Re: I am being interviewed by OReilly |
Previous Message | Henrik Steffen | 2002-07-11 09:09:34 | Re: Serious Crash last Friday |