Latest 0.3.1
Homepage https://github.com/MaxDesiatov/XMLCoder
License MIT
Platforms watchos 2.0, ios 9.0, tvos 9.0, osx 10.11, requires ARC
Authors

Encoder & Decoder for XML using Swift’s Codable protocols.

CI Status
Version
License
Platform
Coverage

This package is a fork of the original
ShawnMoore/XMLParsing
with more options and tests added.

Example

import XMLCoder

let xmlStr = """
<note>
    <to>Bob</to>
    <from>Jane</from>
    <heading>Reminder</heading>
    <body>Don't forget to use XMLCoder!</body>
</note>
"""

struct Note: Codable {
    var to: String
    var from: String
    var heading: String
    var body: String
}

guard let data = xmlStr.data(using: .utf8) else { return }

let note = try? XMLDecoder().decode(Note.self, from: data)

let returnData = try? XMLEncoder().encode(note, withRootKey: "note")

Installation

Requirements

  • Xcode 10
  • Swift 4.2
  • iOS 9.0 / watchOS 2.0 / tvOS 9.0 / macOS 10.10 or later

CocoaPods

CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. You can install it with the following command:

$ gem install cocoapods

Navigate to the project directory and create Podfile with the following command:

$ pod install

Inside of your Podfile, specify the XMLCoder pod:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'YourApp' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Test
  pod 'XMLCoder', '~> 0.3.1'

end

Then, run the following command:

$ pod install

Open the the YourApp.xcworkspace file that was created. This should be the
file you use everyday to create your app, instead of the YourApp.xcodeproj
file.

Carthage

Carthage is a dependency manager that builds your dependencies and provides you with binary frameworks.

Carthage can be installed with Homebrew using the following command:

$ brew update
$ brew install carthage

Inside of your Cartfile, add GitHub path to XMLCoder:

github "MaxDesiatov/XMLCoder" ~> 0.3.1

Then, run the following command to build the framework:

$ carthage update

Drag the built framework into your Xcode project.

Swift Package Manager

Swift Package Manager is a tool for
managing the distribution of Swift code. It’s integrated with the Swift build
system to automate the process of downloading, compiling, and linking
dependencies.

Once you have your Swift package set up, adding XMLCoder as a dependency is as
easy as adding it to the dependencies value of your Package.swift.

dependencies: [
    .package(url: "https://github.com/MaxDesiatov/XMLCoder.git", from: "0.3.1")
]

Contributing

This project adheres to the Contributor Covenant Code of
Conduct
.
By participating, you are expected to uphold this code. Please report
unacceptable behavior to [email protected]

Coding Style

This project uses SwiftFormat to
enforce formatting style. We encourage you to run SwiftFormat within a local
clone of the repository in whatever way works best for you either manually or
automatically via an Xcode
extension
,
build phase or
git pre-commit
hook
etc.
Please check SwiftFormat
documentation

for more details.

SwiftFormat also runs within our Travis
CI
setup and a CI build can fail
with incosistent formatting. We require CI builds to pass for any PR before
merging.

Test Coverage

Our goal is to keep XMLCoder stable and to serialize any XML correctly according
to XML 1.0 standard. All of this
can be easily tested automatically and we’re slowly improving test coverage of
XMLCoder
and don’t expect it to
decrease. PRs that decrease the test coverage have a much lower chance of being
merged. If you add any new features, please make sure to add tests, likewise for
changes and any refactoring in existing code.

Latest podspec

{
    "name": "XMLCoder",
    "version": "0.3.1",
    "summary": "XMLEncoder & XMLDecoder using the Codable protocol in Swift 4",
    "description": "XMLCoder allows Swift 4 Codable-conforming objects to be translated to and from XML",
    "homepage": "https://github.com/MaxDesiatov/XMLCoder",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Shawn Moore": "[email protected]"
    },
    "platforms": {
        "watchos": "2.0",
        "ios": "9.0",
        "tvos": "9.0",
        "osx": "10.11"
    },
    "swift_version": "4.2",
    "source": {
        "git": "https://github.com/MaxDesiatov/XMLCoder.git",
        "tag": "0.3.1"
    },
    "source_files": "Sources/XMLCoder/**/*.swift",
    "requires_arc": true
}

Pin It on Pinterest

Share This