EasyXMLParser 1.1.1

EasyXMLParser 1.1.1

TestsTested
LangLanguage SwiftSwift
License BSD
ReleasedLast Release Feb 2017
SwiftSwift Version 3.0
SPMSupports SPM

Maintained by Asif Adamsha.



  • By
  • ESGI

EasyXMLParser

EasyXMLParser is a simple and easy to use xml parser written in swift for iOs

Podfile

To integrate EasyXMLParse into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.2'

target 'TargetName' do
pod 'EasyXMLParser', '~> 1.1'
end

Then, run the following command:

$ pod install

Usage

Parsing with a xml file

if let utilisateursFichier = Bundle.main.path(forResource: "utilisateurs", ofType: "xml") {
            if let utilisateursString = try? String(contentsOfFile: utilisateursFichier) {
                if let utilisateurData = utilisateursString.data(using: .utf8) {

                    // Parse xml with EasyXMLParser
                    let parser = EasyXMLParser(withData: utilisateurData)
                    let items = parser.parse()

                    // data without filter
                    for item in items["utilisateurs"]["utilisateur"].getSiblingWithSameName() {
                        print(item.fullDescription())
                    }

                    // data with filter
                    let filtreUtilisateur = ["utilisateur":["nom":"", "mail":""]]

                    for item in items.filter(filtre: filtreUtilisateur) {
                        print(item.fullDescription())
                    }

                    // casting data
                    print("Code postal du premier utilisateur (int) : \(items["utilisateurs"]["utilisateur"]["code_postal"].intValue)")
                    print("Code postal du premier utilisateur (float) : \(items["utilisateurs"]["utilisateur"]["code_postal"].floatValue)\n")

                }
            }
        }

Exemple xml file

<?xml version="1.0" encoding="UTF-8" ?>
<utilisateurs>
    <utilisateur>
        <nom>Lenore</nom>
        <mail>[email protected]</mail>
        <telephone>16520424 5277</telephone>
        <addresse>2339 Vivamus Ave</addresse>
        <ville>Şanlıurfa</ville>
        <code_postal>11600</code_postal>
        <pay>American Samoa</pay>
    </utilisateur>
    <utilisateur>
        <nom>Neville</nom>
        <mail>[email protected]</mail>
        <telephone>16140811 4054</telephone>
        <addresse>CP 406, 2955 Fusce Chemin</addresse>
        <ville>Sint-Martens-Lennik</ville>
        <code_postal>1728</code_postal>
        <pay>Ukraine</pay>
    </utilisateur>
</utilisateurs>

Parsing with an url

if let url = URL.init(string: "https://korben.info/feed") {

            if let xmlData = try? Data.init(contentsOf: url) {

                // Parse xml with EasyXMLParser
                let parser = EasyXMLParser(withData: xmlData)
                let letFluxRSS = parser.parse()

                // get channel data
                print("Nom du flux RSS : \(letFluxRSS["rss"]["channel"]["title"].value)")
                print("Adress du flux RSS : \(letFluxRSS["rss"]["channel"]["link"].value)")

                print("Nombre d'article du flux RSS : \(letFluxRSS["rss"]["channel"]["item"].countSiblingWithSameName())")
                print("Nombre de données pour le premier article : \(letFluxRSS["rss"]["channel"]["item"].countAllChildren()) \n\n")

                // get article data
                for article in letFluxRSS["rss"]["channel"]["item"].getSiblingWithSameName() {
                    print(article.fullDescription())
                }
            }
        }

License

EasyXMLParser is released under the BSD-3 license. See LICENSE for details.