Jazyk C# (seminář 8)



Similar documents
Upozorňujeme,že můžete formáty pro čtečky převádět ON-LINE na internetu do formátu PDF apod.

Clearing Firm ID No. Asset Account ID No.

BIRD Internet Routing Daemon

YOUTUBE 4.0. Postup upgrade Youtube z Youtube 3.1 na Youtube 4.0 pro produkty EAGET X5R, M6, M7 a M9:

MICROSOFT WORD Mgr. Krejčí Jan (ZSJP) MICROSOFT WORD září / 21

8.2 Transformace, množinové operace


XML Processing and Web Services. Chapter 17

Jak pracuje. Ondřej Bojar Ústav formální a aplikované lingvistiky MFF UK. ELRC Training Workshop, 15. prosinec /28

aneb Perfekt perfektně.

SECURITIES SERVICES FEES AND COMMISSIONS (for natural and legal persons)

EUROPEAN UNION. Chapter prepared by. Marc Greven

aneb Perfektní minulost.

MERCHANT INTEGRATION GUIDE. Version 2.8

TARIFF & CUT-OFF TIMES - IRELAND

Terms and Conditions for Banks Bank Handlowy w Warszawie S.A. SWIFT code CITIPLPX

NEURAL NETWORKS IN INTRUSION DETECTION SYSTEMS NEURONOVÉ SÍTĚ V SYSTÉMECH PRO DETEKCI NAPADENÍ

Midnight on the Payment Date. Midnight on the Payment Date. Midnight on the Payment Date

Kontejnery. Březen 2008

Přednášející... Kamil Juřík. Lead Consultant & Platform Architect

Automatizovaná formální verifikace

The Universal Boot Loader ( Das U-Boot )

Main banking fees as of, 2015

Economic efficiency of agricultural enterprises and its evaluation

Tridion R5. Business Connector Guide 5.2 SP1

Market Consistent Embedded Value

Studentská tvůrčí a odborná činnost STOČ Control of laboratory model 3D Printer. Martin JUREK

IBM WebSphere Application Server V8.5

Jak pracuje. Ondřej Bojar Ústav formální a aplikované lingvistiky MFF UK. ELRC Workshop, 14.

HTTP - METHODS. Same as GET, but transfers the status line and header section only.

70-487: Developing Windows Azure and Web Services

and transfers in foreign currency in Denmark Corporate Effective from 17 June 2016

Assessment of Risk Areas of a Tunnel Project based on Expert Opinion

BACHELOR S THESIS. Roman Betík XML Data Visualization

Danske Bank - Personal Customers Payment Table.

DTD Tutorial. About the tutorial. Tutorial

and transfers in foreign currency in Denmark Consumers Effective from 1 January 2015

International payments Tariff for corporate customers effective from 1 January 2015

B A S I C S C I E N C E S

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.

Payment Transaction.

PAYMENT TRANSACTION. Your payment transaction information

Vypln ní p ihlášky zvládne každý! Online ást p ihlášky Všechny ásti p ihlášky vypl te bez diakritiky. Každou ást po vypln

NÁVRH Příklady hlášení obchodů

INFO SHEET Effective from 1 January 2012 Applies to individuals

Skrill Automated Payments Interface (API) Guide

RSS Feed from an Access Database

KEY INFORMATION DOCUMENT

Tvorba webových stránek a HTML 5. Martin Trnečka

Citi International Payment Account (IPA) Solution. Globalization Enabled

GFMA GLOBAL FX DIVISION OTC FX OPTIONS CLEARING & SETTLEMENT ANALYSIS RESULTS NOVEMBER 18, 2013

Enterprise Annual Plan and Its Software Support

Digibilly Cloud Pay 1.00.C. Installation Guide

ARP,TCP,IP utility -zjednodusene a rychle Jiri Kubina jiri.kubina@osu.cz Ver. 1.0 leden 2006

KATALOG JARO LÉTO 2008

T-CONNECT EDI VIEWER. Installation and User Guide 12/16/2014 WE BUILD SOFTWARE THAT HELPS OUR CLIENTS GROW DOCUMENT CREATED BY:

Securities services fees and commissions

Schedule of International Transaction Charges. This document contains important information. Please read carefully and retain for future reference.

Pracovná skupina 1 Energetický management a tvorba energetických plánov mesta

CZECH-ASIAN FORUM business, cultural and educational exchange

Management Development Practices in the Czech Reality

Vyplnění přihlášky zvládne každý! Přejeme hodně štěstí! Online část přihlášky

CS 378 Big Data Programming. Lecture 9 Complex Writable Types

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

Môže sa to stať aj Vám - sofistikované cielené hrozby Ján Kvasnička

WK29B / WK29W. Bluetooth Wireless Slim Keyboard. User manual ( 2 5 ) Uživatelský manuál ( 6 10) Užívateľský manuál (11 15)

Isabel 6 Guide Group #1. How to encode SEPA and Non-SEPA transactions from an ING Belgium (BBRUBEBB) account?

Disky, mechaniky a řadiče. Batohy, brašny a obaly. Consumer I Hard Drives Desktop. Consumer I Hard Drives Mobility

Tracking an Affiliate Program or campaign

Zabezpečení embedded systému proti degradaci úložiště

PRESS RELEASE. Triennial survey on the foreign exchange and derivatives markets: results for Belgium

ING Bank N.V., Prague branch. Payments in ING Online electronic banking. User guide

XML Programming Using C# and.net

VY_22_INOVACE_54 Present perfect. Vzdělávací oblast: Jazyk a jazyková komunikace Vzdělávací obor: Anglický jazyk Ročník: 8.,9.

CESKÁ REPUBLIKA (CZECH REPUBLIC) : Trusted List

Merchant's Default Payout in local currency

Timeframes for Payment Processing for local Rabobank business clients. Euro Payments, Euro Direct Debits and World Payments. Share in each other

[MS-DVRD]: Device Registration Discovery Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

Information concerning Terms and Conditions of Provision of Payment Services by Citibank Europe plc, pobočka zahraničnej banky

STANDARD TARIFF SCALE STOCK, ADR, ETF

Cash-Settled Forward (CSFs)

UKÁZKA ILUSTRAČNÍCH TESTOVÝCH ÚLOH BUDOUCÍCH MATURITNÍCH TESTŮ ZE ZKUŠEBNÍHO PŘEDMĚTU:

Distribution and Integration Technologies

Luk aˇ s R uˇ ziˇ cka Pomocn a slovesa

Citigold. List of Charges for Products and Services

Chapter 3: XML Namespaces

PayPal Foreign Currency Acceptance Training Guide

Transcription:

Jazyk C# (seminář 8) Pavel Procházka KMI 12. listopadu 2014

Na co je dobré XML? Deklarativní jazyk reprezentující čitelně data Snadná práce s konfiguračními soubory a ukládání do souboru Human readeble přístup k přečtení není potřeba počítač Strukturovaná rekurzivní podoba n-ární strom Široké použití na webu v příbuzném HTML formátu Časté využití ve webových aplikacích Nevýhodou je velké plýtvání znaky a nejednoznačnost použití atributů a elementů Je to pomalejší a ukecanější, než JSON Možnost validace dat (narozdíl od JSON)

Syntaxe XML Pěkně shrnuto je to tady http://www.w3schools.com/xml/default.asp Obvykle začíná XML dokument hlavičkou určující encoding, typicky <?xml version="1.0" encoding="utf-8"?> Obvykle pák následují data Klíče k datům (elementy) se zapisují do zobáčků <element_name> Element se uzavírá <element_name/> Elementů může být více v globálním prostředí Každý element musí být uzavřen v korektním pořadí Každý element může obsahovat další elementy nebo text Každý element může obsahovat atribut <book moje_id="0xdead">babicka</book> Klíče musí být v uvozovkách

Příklad XML souboru <?xml version="1.0" encoding="utf-8"?> <note> <to> Tove</to> <from>jani</from> <heading>reminder</heading> <body>don t forget me this weekend!</body> </note>

Práce s XML v C# čtení Namespace System.Xml; Potřeba doplnit referenci v některých IDE Budeme potřebovat třídu XmlReader umí číst XML po prvcích K inicializaci slouží XmlReader.Create() metoda je statická!, očekává URI + další přetížení Sekvenční čtení XML zajišt uje metoda Read špatně se takto čtou/detekují zanořená data Metoda IsStartElement zjišt uje, zda je to top-level prvek (jeho rodič je root) Enum XmlNodeType rozlišuje, co zrovna bylo přečteno, možnosti jsou Attribute, Element,Element, Text, EndElement a další (méně důležité)

Příklad XML souboru... <Cube> <Cube time= 2014-11-12 > <Cube currency= USD rate= 1.2467 /> <Cube currency= JPY rate= 143.63 /> <Cube currency= BGN rate= 1.9558 /> <Cube currency= CZK rate= 27.603 /> <Cube currency= DKK rate= 7.4416 /> <Cube currency= GBP rate= 0.78800 /> <Cube currency= HUF rate= 307.36 /> <Cube currency= LTL rate= 3.4528 /> <Cube currency= PLN rate= 4.2192 />... </Cube> </Cube>

Čtení XML XmlReader xmlreader = XmlReader.Create("my_file.xml"); while(xmlreader.read()) { if((xmlreader.nodetype == XmlNodeType.Element) && (xmlreader.name == "Cube")) { if(xmlreader.hasattributes) Console.WriteLine(xmlReader.GetAttribute("currency") ": " + xmlreader.getattribute("rate")); } }

Zápis souborů XML Triviální možnost sestavit programově XML kód Třída XmlWriterSettings nastavuje vlastnosti výstupu typicky indentaci, tabulátory apod. Třída XmlWriter zapisuje do URI, streamu apod. instance se tvoří pomocí XmlWriter.Create(string URI, XmlWriterSettings s); Metoda WriteStartElement(string name) zakládá element name Metoda WriteEndElement() uzavírá příslušný element (automaticky) WriteStartAtribute( string key ) vkládá do elementu atribut key WriteEndAtribute() uzavírá atribut do uvozovek WriteString( string s ) zapisuje řetězec s (i do atributu)

Příklad zápisu XmlWriterSettings settings = new XmlWriterSettings (); settings.indent = true; settings.omitxmldeclaration = false; XmlWriter writer = XmlWriter.Create (Console.Out, setting writer.writestartelement ("book"); writer.writestartelement ("author"); writer.writestartattribute ("born"); writer.writestring ("now"); writer.writeendattribute (); writer.writestring ("Somebody"); writer.writeendelement (); writer.writestartelement ("title"); writer.writestring ("Pride And Prejudice"); writer.writeendelement (); writer.writeendelement (); writer.close ();

Výsledek <?xml version="1.0" encoding="utf-8"?> <book> <author born="18-10-1977">somebody</author> <title>pride And Prejudice</title> </book>

Další možnosti práce s XML v C# To, co jsme právě viděli je asi nejméně inteligentní práce s XML, co v C# existuje Existují příjmnější objekty z namespace System.Xml.Linq Problém je ten, že Linq je vpodstatě další jazyk v jazyku má vlastní syntaxi, která neodpovídá C#! Doporučuji se podívat sem http://msdn.microsoft.com/cs-cz/library/system. xml.linq.xdocument(v=vs.110).aspx Vlastní dotazovací jazyk XPath Všechny možnosti práce s XML jsou pěkně shrnuty zde http://stackoverflow.com/questions/220867/ how-to-deal-with-xml-in-c-sharp

Krátký úvod do JSONu XML soubory Hlavní způsob reprezentace dat na webu Extrémně jednoduchá syntaxe i sémantika Málo nadbytečných znaků při zachování stejné síly jako XML Rozparzování přímo do n-árního stromu

Implementace pro C# Implementace od Microsoftu ne příliš povedená http: //msdn.microsoft.com/en-us/library/hh674188.aspx Opensource implementace http://james.newtonking.com/json Opensource implementace je součástí balíku Mono

A ted vy Udělejte grafický nástroj na přepočet měny podle aktuálního kurzu, ten je uložen na adrese www.ecb.europa.eu/stats/ eurofxref/eurofxref-daily.xml