Heim >Backend-Entwicklung >XML/RSS-Tutorial >Ausführliche Einführung in das XML-Parsing (Grafik und Text)

Ausführliche Einführung in das XML-Parsing (Grafik und Text)

黄舟
黄舟Original
2017-03-17 17:22:091769Durchsuche

Dieses Tutorial verwendet das NSXMLParser -Objekt zum Parsen von XML-Dateien. Die Parsing-Ergebnisse werden in der Tabellenansicht angezeigt. Dieses Tutorial basiert auf iOS 9.3 auf Xcode 7.3.1.
Öffnen Sie Xcode und erstellen Sie eine neue Einzelfensteranwendung. Der Name lautet IOS9XMLParserTutorial, und der Organisationsname und das Organisationslogo werden von Ihnen selbst festgelegt. Wählen Sie Swift als Sprache und iPhone als Gerät.

Ausführliche Einführung in das XML-Parsing (Grafik und Text)

Entfernen Sie den View Controller aus dem Storyboard und ziehen Sie einen Navigation Controller auf die leere Zeichenfläche. Dieser Navigationscontroller verfügt automatisch über einen Table View Controller. Wenn Sie den anfänglichen View Controller löschen, wird auch der entsprechende Storyboard-Startpunkt entfernt. Wir wählen also zunächst den neu hinzugefügten Navigations-Controller aus und aktivieren das Kontrollkästchen „Ist Initial View Controller“ im Attributinspektor als Ausgangspunkt des neuen Storyboards.

Ausführliche Einführung in das XML-Parsing (Grafik und Text)

Doppelklicken Sie auf die Titelleiste des aktiven View Controllers, um sie auf „Bücher“ festzulegen. Wählen Sie die Tabellenansichtszelle aus und setzen Sie deren Stil-

Eigenschaft im Attributinspektor auf „Untertitel“.

Ausführliche Einführung in das XML-Parsing (Grafik und Text)

Das Storyboard sieht so aus

Ausführliche Einführung in das XML-Parsing (Grafik und Text)

Nachdem wir den ursprünglichen View Controller gelöscht haben, kann ViewController.swift dies auch tun gemeinsam gelöscht werden. Wählen Sie iOS->Source->Cocoa Touch

Class. Fügen Sie eine neue Datei hinzu, nennen Sie sie TableViewController und legen Sie sie als Unterklasse von UITableViewController fest.

Ausführliche Einführung in das XML-Parsing (Grafik und Text)

Gehen Sie zum Storyboard, wählen Sie den Table View Controller aus und legen Sie im Identitätsinspektor den Abschnitt „Benutzerdefinierte Klasse“ auf TableViewController fest.

Ausführliche Einführung in das XML-Parsing (Grafik und Text)

Wählen Sie iOS->Quelle->Swift

Datei, um eine neue Datei hinzuzufügen. Nennen Sie es Books.xml

Ausführliche Einführung in das XML-Parsing (Grafik und Text)

Öffnen Sie Books.xml und ersetzen Sie es durch den folgenden Code

<?xml version="1.0"?>
<catalog>
    <book id="1">
        <title>To Kill a Mockingbird</title>
        <author>Harper Lee</author>
    </book>
    <book id="2">
        <title>1984</title>
        <author>George Orwell</author>
    </book>
    <book id="3">
        <title>The Lord of the Rings</title>
        <author>J.R.R Tolkien</author>
    </book>
    <book id="4">
        <title>The Catcher in the Rye</title>
        <author>J.D. Salinger</author>
    </book>
    <book id="5">
        <title>The Great Gatsby</title>
        <author>F. Scott Fitzgerald</author>
    </book>
</catalog>
Wählen Sie iOS->Source->Swift Datei Neu hinzufügen Die Dateien dienen als Daten

Modelle für verschiedene Elemente in der XML-Datei. Nennen wir es Book.swift und ersetzen wir es durch den folgenden Code

import Foundation

class Book {
    var bookTitle: String = String()
    var bookAuthor: String = String()
}
Gehen Sie zur Datei tableViewController.swift und fügen Sie die folgenden

Variablen hinzu.

var books: [Book] = []
var eName: String = String()
var bookTitle = String()
var bookAuthor = String()
Schreiben Sie die viewDi

dLoad-Methode in das

override func viewDidLoad() {
    super.viewDidLoad()
        
    if let path = NSBundle.mainBundle().URLForResource("books", withExtension: "xml") {
        if let parser = NSXMLParser(contentsOfURL: path) {
            parser.delegate = self
            parser.parse()
        }
    }
}
NSXMLParser-Objekt um, um die Datei „books.xml“ im Bundle zu analysieren. Fügen Sie die folgende Datenquelle und Delegate-Methode der Tabellenansicht hinzu

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return books.count
}
    
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
        
    let book = books[indexPath.row]
        
    cell.textLabel?.text = book.bookTitle
    cell.detailTextLabel?.text = book.bookAuthor

    return cell
}
Die Titel- und Autorendaten aller Bücher werden im Bücher-

Array gespeichert und von der Tabellenansicht präsentiert. Als nächstes implementieren Sie die Delegate-Methode von NSXMLParser.

// 1
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, 
qualifiedName qName: String?, attributes attributeDict: [String : String]) {
    eName = elementName
    if elementName == "book" {
        bookTitle = String()
        bookAuthor = String()
    }
}
    
// 2  
func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
    if elementName == "book" {
            
    let book = Book()
    book.bookTitle = bookTitle
    book.bookAuthor = bookAuthor
            
    books.append(book)
    }
}
    
// 3
func parser(parser: NSXMLParser, foundCharacters string: String) {
    let data = string.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
        
    if (!data.isEmpty) {
        if eName == "title" {
            bookTitle += data
        } else if eName == "author" {
            bookAuthor += data
        }
    }
}
  1. Diese Methode wird ausgelöst, wenn das Parsing-Objekt auf das Start-Tag von „“ trifft

  2. Diese Methode wird ausgelöst Wenn das Parsing-Objekt auf das End-Tag von „“ trifft, wird es ausgelöst

  3. Hier wird der Parsing-Prozess tatsächlich ausgeführt. Die Titel- und Autor-Tags werden analysiert und die entsprechenden Variablen werden initialisiert.

Erstellen Sie das -Projekt und führen Sie es aus. Sie können die Titel und Autoren aller Bücher im TableViewController sehen.
Ausführliche Einführung in das XML-Parsing (Grafik und Text)


Das obige ist der detaillierte Inhalt vonAusführliche Einführung in das XML-Parsing (Grafik und Text). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn