XML   otázka

SQL, XML, Databáze, .NET

Ahoj, zajímalo by mě jestli je nějaký způsob, jak pomocí c# v asp.net importovat data z XML souboru do SQl databáze. Jedná se mi o již vytvořené funkce. Vlastní komponentu si naprogramovat dovedu, ale reaději bych použil nějaký standard. Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V desktopové aplikaci to jde naprosto bez problémů tak hádám, že v ASP.NET to půjde stejným způsobem. Zkuste si nejdřív udělat jednoduchou konzolovou aplikaci, kde se naučíte pracovat s XML nejlépe pomocí System.Xml.XmlDocument. Když budete umět načíst data z požadovaných elementů a atributů, potom už nebude problém to nacpat do databáze.

Bude se vám hodit něco o XPath syntaxi pro navigaci v XML:

http://www.w3schools.com/XPath/xpath_syn...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To jsem právě nechtěl, abych musel psát vlastní komponentu, která přečte xml a vytahá z něj data do sql. Nakonec jsem to udělal přes SqlBulkCopy, jenže jsem narazil na jeden problém. Mám tento kód, který naplní sadu dat z xml

 DataSet reportData = new DataSet();        reportData.ReadXml(Server.MapPath("App_Data/import.xml"));
        string prip = WebConfigurationManager.ConnectionStrings["Test"].ConnectionString;
        SqlConnection connect = new SqlConnection(prip);
        SqlBulkCopy sbc = new SqlBulkCopy(connect);
        sbc.DestinationTableName = "test1";
        sbc.ColumnMappings.Add("id", "cislo");
        sbc.ColumnMappings.Add("date", "datum");
        sbc.ColumnMappings.Add("xml", "text");
       
        connect.Open();
        sbc.WriteToServer(reportData.Tables[0]);
        connect.Close();

jenže potřebuji importovat do databáze text obsahující xml tagy. Prostě že xml soubor vypadá takto :

<?xml version="1.0" encoding="windows-1250"?>
<import>
	<zaznam>
		<id>1</id>
		<date>2222</date>
		<xml><tag1>text</tag1></xml>
	</zaznam>
	<zaznam>
		<id>3</id>
		<date>45482222</date>
		<xml><test>ff</test></xml>
	</zaznam>
</import>

a asp mi samozřejmě vyhodí chybu ohledně tagu <xml>, potřeboval bych teda vědět, jak říct sadě dat, aby importovala vše co je v tagu <xml> bez ohledu na to jestli je to tag nebo text.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já teda nevím, ale myslím, že todle:

<xml><test>ff</test></xml>

je to samý jako todle:

<xml>
  <test>ff</test>
</xml>

Takže by to chtělo celý udělat jako CData nebo todle <> jako znaky (znakový entity)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback