Человеко-машинное взаимодействие Лекция 6 Мерзлякова Екатерина Юрьевна к.т.н. доцент ПМиК.

Slides:



Advertisements
Similar presentations
1 eXtensible Markup Language. XML is based on SGML: Standard Generalized Markup Language HTML and XML are both based on SGML 2 SGML HTMLXML.
Advertisements

J0 1 Marco Ronchetti - Web architectures – Laurea Specialistica in Informatica – Università di Trento Java XML parsing.
XML, Uploading, Importing... Joshua Scotton.
Software Engineering Implementation Lecture 3 ASPI8-4 Anders P. Ravn, Feb 2004.
XML Parsing Using Java APIs AIP Independence project Fall 2010.
XML Parsers By Chongbing Liu. XML Parsers  What is a XML parser?  DOM and SAX parser API  Xerces-J parsers overview  Work with XML parsers (example)
SAX A parser for XML Documents. XML Parsers What is an XML parser? –Software that reads and parses XML –Passes data to the invoking application –The application.
XML Technologies and Applications Rajshekhar Sunderraman Department of Computer Science Georgia State University Atlanta, GA 30302
1 XML and Data Management XML Processors Hachim Haddouti Al Akhawayn University SSE
21-Jun-15 SAX (Abbreviated). 2 XML Parsers SAX and DOM are standards for XML parsers-- program APIs to read and interpret XML files DOM is a W3C standard.
Пользовательские действия (custom actions) в JSP. JSTL.
26-Jun-15 SAX. SAX and DOM SAX and DOM are standards for XML parsers--program APIs to read and interpret XML files DOM is a W3C standard SAX is an ad-hoc.
28-Jun-15 StAX Streaming API for XML. XML parser comparisons DOM is Memory intensive Read-write Typically used for documents smaller than 10 MB SAX is.
JAX- Java APIs for XML by J. Pearce. Some XML Standards Basic –SAX (sequential access parser) –DOM (random access parser) –XSL (XSLT, XPATH) –DTD Schema.
Processing of structured documents Spring 2003, Part 5 Helena Ahonen-Myka.
PHP with XML Dequan Chen and Narith Kun ---Term Project--- for WSU 2010 Summer Course - CS366 s:
1 CS122B: Projects in Databases and Web Applications Spring 2015 Notes 05: XML Professor Chen Li Department of Computer Science UC Irvine CS122BNotes 05:
CSE 6331 © Leonidas Fegaras XML Tools1 XML Tools Leonidas Fegaras.
CSE 6331 © Leonidas Fegaras XML Tools1 XML Tools Leonidas Fegaras.
SDPL 2003Notes 3: XML Processor Interfaces1 3. XML Processor APIs n How can applications manipulate structured documents? –An overview of document parser.
1 XML at a neighborhood university near you Innovation 2005 September 16, 2005 Kwok-Bun Yue University of Houston-Clear Lake.
5 Processing XML Parsing XML documents  Document Object Model (DOM)  Simple API for XML (SAX) Class generation Overview.
Structured-Document Processing Languages Spring 2011 Course Review Repetitio mater studiorum est!
XML And Its UsesUPE Dearborn, 2/9/2004 ParsersCopyright 2004 by Blair Schneider McKaySlide 1 Agenda Introduction - "Why XML?" Section 1: XML Basics Section.
Advanced Java Session 9 New York University School of Continuing and Professional Studies.
CSE 6331 © Leonidas Fegaras XML Tools1 XML Tools.
SDPL 2002Notes 3: XML Processor Interfaces1 3. XML Processor APIs n How can applications manipulate structured documents? –An overview of document parser.
XML Parsers Overview  Types of parsers  Using XML parsers  SAX  DOM  DOM versus SAX  Products  Conclusion.
SAX. What is SAX SAX 1.0 was released on May 11, SAX is a common, event-based API for parsing XML documents Primarily a Java API but there implementations.
XML 6.4 DOM 6. The XML ‘Alphabet Soup’ XMLExtensible Markup Language Defines XML documents XSLExtensible Stylesheet Language Language for expressing stylesheets;
XML Processing in Java. Required tools Sun JDK 1.4, e.g.: JAXP (part of Java Web Services Developer Pack, already in Sun.
Java API for XML Processing (JAXP) Dr. Rebhi S. Baraka Advanced Topics in Information Technology (SICT 4310) Department of Computer.
Sheet 1XML Technology in E-Commerce 2001Lecture 3 XML Technology in E-Commerce Lecture 3 DOM and SAX.
Язык программирования C#
1 4/13/01 CSE 121/131 Programming Spring 2001 Lecture Notes 7  A. Sahuguet & V.Tannen.
Человеко-машинное взаимодействие Лекция 9 Мерзлякова Екатерина Юрьевна к.т.н. доцент ПМиК.
User Interface Android GUI Tool OpenGL API XML Writer Optimized Layout Algorithm WPF Component Inter.
CSE 6331 © Leonidas Fegaras XML Tools1 XML Tools.
Человеко-машинное взаимодействие Лекция 5 Мерзлякова Екатерина Юрьевна к.т.н. доцент ПМиК.
SNU OOPSLA Lab. DOM/SAX Applications The ubiquitous XML(9) © copyright 2001 SNU OOPSLA Lab.
Leonidas FegarasThe Joy of SAX1 The Joy of SAX Leonidas Fegaras University of Texas at Arlington
© Marty Hall, Larry Brown Web core programming 1 Simple API for XML SAX.
SAX2 and DOM2 Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
9 주 실습강의 XML Visualization(1) 학기, 소프트웨어 설계 및 실험 ( Ⅰ )
XML and SAX (A quick overview) ● What is XML? ● What are SAX and DOM? ● Using SAX.
Extracting Typed Values from XML Data Fabio Simeoni David Lievens Paolo Manghi Steve Neely Richard Connor.
Challenges in handling XML: performance and memory usage Sami Poikonen Republica oy.
When we create.rtf document apart from saving the actual info the tool saves additional info like start of a paragraph, bold, size of the font.. Etc. This.
What is XML? eXtensible Markup Language eXtensible Markup Language A subset of SGML (Standard Generalized Markup Language) A subset of SGML (Standard Generalized.
XML SNU OOPSLA Lab. October Contents  Semistructured Data  Introduction  History  XML Application  DTD & XML Schema  DOM & SAX  Summary.
Const Member Functions Which are read-only? //fraction.h... class Fraction { public: void readin(); void print();
SDPL 20063: XML Processor Interfaces1 3. XML Processor APIs n How can (Java) applications manipulate structured (XML) documents? –An overview of XML processor.
Simple API for XML (SAX) Aug’10 – Dec ’10. Introduction to SAX Simple API for XML or SAX was developed as a standardized way to parse an XML document.
7-Mar-16 Simple API XML.  SAX and DOM are standards for XML parsers-- program APIs to read and interpret XML files  DOM is a W3C standard  SAX is an.
Int fact (int n) { If (n == 0) return 1; else return n * fact (n – 1); } 5 void main () { Int Sum; : Sum = fact (5); : } Factorial Program Using Recursion.
1 Introduction SAX. Objectives 2  Simple API for XML  Parsing an XML Document  Parsing Contents  Parsing Attributes  Processing Instructions  Skipped.
Java API for XML Processing
Simple API for XML SAX. Agenda l Introduction to SAX l Installation and setup l Steps for SAX parsing l Defining a content handler l Examples Printing.
Parsing with SAX using Java Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
New Xml Converters General presentation of Xml converters The old way
XML Parsers Overview Types of parsers Using XML parsers SAX DOM
CS122B: Projects in Databases and Web Applications Spring 2017
New Xml Converters General presentation of Xml converters The old way
Java XML IS
XML Parsers By Chongbing Liu.
XML Parsers Overview Types of parsers Using XML parsers SAX DOM
null, true, and false are also reserved.
Java API for XML Processing
A parser for XML Documents
Presentation transcript:

Человеко-машинное взаимодействие Лекция 6 Мерзлякова Екатерина Юрьевна к.т.н. доцент ПМиК

XML (Extensible Markup Language, расширяемый язык разметки). средство хранения структурных данных в текстовом файле.

Piggy Kermit

. ТЕГИ : Сохранение информации ПРИЛОЖЕНИЕ : Интерпретация и для описания документов можно использовать теги с любыми подходящими названиями.

QT += xml #include DOM (Document Object Model, объектная модель документа) SAX (Simple API for XML, простой API для XML)

DOM (Document Object Model, объектная модель документа) — это стандартное API для анализа XML-документов, разработаное W3C. возможность представления XML- документа в виде древовидной структуры, в памяти компьютера. QDomNode, QDomElement, QDomAttr и QDomText.

QDomElement – представление элементов QDomNode – любые типы узлов QDomNode QDomElement - QDomNode::toElement() isNull()

TEMPLATE = app QT += xml SOURCES = main.cpp win32:CONFIG += console win32:TARGET =../XmlDOMRead

int main(){ QDomDocument domDoc; QFile file("addressbook.xml"); if(file.open(QIODevice::ReadOnly)) { if(domDoc.setContent(&file)) { QDomElement domElement=domDoc.documentElement(); traverseNode(domElement); } file.close(); } return 0;}

#include void traverseNode(const QDomNode& node) { QDomNode domNode = node.firstChild(); while(!domNode.isNull()) { if(domNode.isElement()) { QDomElement domElement = domNode.toElement(); if(!domElement.isNull()) { if(domElement.tagName() == "contact") { qDebug() << "Attr: « << domElement.attribute("number", ""); } else { qDebug() << "TagName: " << domElement.tagName() << "\tText: " << domElement.text(); } } } traverseNode(domNode); domNode = domNode.nextSibling(); }

QDomDocument createElement(), createTextNode(), createAttribute(). Объект узла

int main() { QDomDocument doc("addressbook"); QDomElement domElement = doc.createElement("adressbook"); doc.appendChild(domElement); QDomElement contact1 = contact(doc, "Piggy", " ", QDomElement contact2 = contact(doc, "Kermit", " ", QDomElement contact3 = contact(doc, "Gonzo", " ", domElement.appendChild(contact1); domElement.appendChild(contact2); domElement.appendChild(contact3); QFile file("adressbook.xml"); if(file.open(QIODevice::WriteOnly)) { QTextStream(&file) << doc.toString(); file.close(); } return 0; }

QDomElement contact( QDomDocument& domDoc, const QString& strName, const QString& strPhone, const QString& str ) { static int nNumber = 1; QDomElement domElement = makeElement(domDoc, "contact", QString().setNum(nNumber) ); domElement.appendChild(makeElement(domDoc, "name", "", strName)); domElement.appendChild(makeElement(domDoc, "phone", "", strPhone)); domElement.appendChild(makeElement(domDoc, " ", "", str )); nNumber++; return domElement; }

QDomElement makeElement( QDomDocument& domDoc, const QString& strName, const QString& strAttr = QString::null, const QString& strText = QString::null ) { QDomElement domElement = domDoc.createElement(strName); if (!strAttr.isEmpty()) { QDomAttr domAttr = domDoc.createAttribute("number"); domAttr.setValue(strAttr); domElement.setAttributeNode(domAttr); } if (!strText.isEmpty()) { QDomText domText = domDoc.createTextNode(strText); domElement.appendChild(domText); } return domElement; }

SAX (Simple API for XML, простой API для XML) является стандартом JavaAPI для считывания XML-докуменов. QXmlSimpleReader – XML-анализатор, базирующийся на SAX. Читает XML-документ блоками и сообщает о том, что было найдено, с помощью соответствующих методов. В память помещаются только фрагменты, а не весь XML- документ. QXmlContentHandler QXmlEntityResolver QXmlDTDHandler QXmlErrorHandler QXmlDeclHandler QXmlLexicalHandler

QXmlContentHandier QXmlErrorHandler startDocument() startElement() characters () endElement() endDocument()

QXmlDefaultHandler пустые реализации виртуальных методов startDocument(), startElement(), анализ файлов characters(), QXmlSimpleReader endElement(), errorString() endDocument() fatalError() - QXmlErrorHandler true false

int main() { AddressBookParser handler; QFile file("addressbook.xml"); QXmlInputSource source(&file); QXmlSimpleReader reader; reader.setContentHandler(&handler); reader.parse(source); return 0; }

class AddressBookParser : public QXmlDefaultHandler { private: QString m_strText; public: bool startElement(const QString&, const QString&, const QXmlAttributes& attrs ) { for(int i = 0; i < attrs.count(); i++) { if(attrs.localName(i) == "number") { qDebug() << "Attr:" << attrs.value(i); } } return true; }

bool characters(const QString& strText) { m_strText = strText; return true; } bool endElement(const QString&, const QString&, const QString& str) { if (str != "contact" && str != "addressbook") { qDebug() << "TagName:" << str << "\tText:" << m_strText; } return true; }

bool fatalError(const QXmlParseException& exception) { qDebug() << "Line:" << exception.lineNumber() << ", Column:" << exception.columnNumber() << ", Message:" << exception.message(); return false; } };

DOM SAX иерархияблоки быстрый