Yes, SwiftSoup can be used for both iOS and macOS development. SwiftSoup is a pure Swift library that provides the ability to parse and manipulate HTML and XML documents in an easy and efficient way. It is a Swift port of the popular Java library Jsoup.
Since SwiftSoup is written in Swift, it can be integrated into any project that supports Swift code. This includes applications for iOS, macOS, watchOS, and tvOS.
Here's a simple example of how you might use SwiftSoup in a Swift project to parse some HTML content and extract data from it:
import SwiftSoup
let html = "<html><head><title>First parse</title></head>"
+ "<body><p>Parsed HTML into a doc.</p></body></html>"
do {
let doc: Document = try SwiftSoup.parse(html)
let title: String = try doc.title()
let p: Element? = try doc.select("p").first()
let text: String = try p?.text() ?? "No content"
print(title) // Outputs: First parse
print(text) // Outputs: Parsed HTML into a doc.
} catch Exception.Error(let type, let message) {
print(message)
} catch {
print("error")
}
To use SwiftSoup in your iOS or macOS project, you need to include it as a dependency. This can be done using Swift Package Manager, CocoaPods, or Carthage, which are common dependency managers for Swift projects.
For example, to integrate SwiftSoup using CocoaPods, you would add the following line to your Podfile
:
pod 'SwiftSoup'
Then run pod install
in your terminal to install the library.
For Swift Package Manager, you can add SwiftSoup as a dependency in your Package.swift
file like this:
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "MyProject",
dependencies: [
.package(url: "https://github.com/scinfu/SwiftSoup.git", from: "2.3.2")
],
targets: [
.target(
name: "MyProject",
dependencies: ["SwiftSoup"]
)
]
)
After adding the dependency, you can import SwiftSoup in your Swift files and use it as shown in the example above.
Please note that while SwiftSoup is versatile and can be used across Apple's platforms, it is best suited for tasks such as offline parsing and manipulation of HTML/XML content. For tasks like dynamic web scraping where JavaScript execution is required, you would need to use different tools or methods, such as WKWebView in iOS/macOS, which can load and interact with web pages including running JavaScript.