I know it’s not sporting asking for this kind of help, But I’ve been really stuck on this for a while – right now I am reading two C# books and working everyday over 9 hours.
Okay here is my problem: I have a WinForms C# application that is almost complete. In SQL I have three tables that look like this:
CREATE TABLE [dbo].[Racuni]( [BROJ] [varchar](12) NULL, [DATUM] [datetime] NULL, [TS] [datetime] NULL, [USER_ID] [int] NULL, [KASA_ID] [varchar](3) NULL, [TOTAL] [float] NULL, [STATUS] [varchar](1) NULL, [ARH] [varchar](max) NULL ) ON [PRIMARY] Create Table 'Rac_Npl' ( br_rac Char( 12 ) , kasa_id Char( 3 ) , npl_id Integer , iznos Money); CREATE TABLE [dbo].[Stavke]( [br_rac] [varchar](12) NULL, [kasa_id] [char](3) NULL, [art_id] [int] NULL, [kol] [float] NULL, [mpc] [money] NULL, [ompc] [money] NULL)
And I have XML file(s) on local disk for importing these three tables – the XML looks like this:
<?xml version='1.0' encoding='windows-1250'?> <transaction> <table name='qryRacuniSmjene'> <fields> <field name='BROJ' type='1' size='12'/> <field name='DATUM' type='9' size='0'/> <field name='TS' type='11' size='0'/> <field name='USER_ID' type='3' size='0'/> <field name='KASA_ID' type='1' size='3'/> <field name='TOTAL' type='8' size='4'/> <field name='STATUS' type='1' size='1'/> <field name='ARH' type='16' size='1'/> </fields> <data> <row> <![CDATA[09-0002-0001]]> <![CDATA[16.04.2009]]> <![CDATA[16.04.2009 13:23:27]]> <![CDATA[1]]> <![CDATA[001]]> <![CDATA[2,60]]> <![CDATA[D]]> <![CDATA[ porezni broj: 000000000000 Zaobilaznica bb ]]> </row> <row> <![CDATA[09-0002-0002]]> <![CDATA[16.04.2009]]> <![CDATA[16.04.2009 13:23:27]]> <![CDATA[1]]> <![CDATA[001]]> <![CDATA[2,60]]> <![CDATA[D]]> <![CDATA[ porezni broj: 000000000001 Zaobilaznica bb ]]> </row> </data> </table> <table name='qryRac_nplSmjene'> <fields> <field name='br_rac' type='1' size='12'/> <field name='kasa_id' type='1' size='3'/> <field name='npl_id' type='3' size='0'/> <field name='iznos' type='8' size='4'/> </fields> <data> <row> <![CDATA[09-0002-0001]]> <![CDATA[001]]> <![CDATA[1]]> <![CDATA[2,60]]> </row> <row> <![CDATA[09-0002-0002]]> <![CDATA[001]]> <![CDATA[1]]> <![CDATA[2,60]]> </row> </data> </table> <table name='qryStavkeSmjene'> <fields> <field name='br_rac' type='1' size='12'/> <field name='kasa_id' type='1' size='3'/> <field name='art_id' type='3' size='0'/> <field name='kol' type='6' size='0'/> <field name='mpc' type='8' size='4'/> <field name='ompc' type='8' size='4'/> </fields> <data> <row> <![CDATA[09-0002-0001]]> <![CDATA[001]]> <![CDATA[152414]]> <![CDATA[1,000]]> <![CDATA[2,60]]> <![CDATA[2,60]]> </row> <row> <![CDATA[09-0002-0001]]> <![CDATA[001]]> <![CDATA[152414]]> <![CDATA[1,000]]> <![CDATA[2,60]]> <![CDATA[2,60]]> </row> </data> </table> </transaction>
Once again I am embarassed to request assistance in this way, but I’ll try to suport StackOverflow in any way I can.
Multiple CDATA elements are not consistantly supported across implementations. For example, you will have problems accessing them an XDocument or via SelectNodes. If you can change the input format that would make things easier.
This code hasn’t been tested and there’s no error handling or bad data checking, but it should get you started. Investigate using XPathDocument / XPathNavigator for performance and read my inline comments.