Bagaimana cara menjalankan biner tertanam di aplikasi SwiftUI Mac?
Aug 19 2020
Saya mencoba mengembangkan validator XML yang sangat sederhana berdasarkan XIDEL.
Inilah kode SwiftUI saya sejauh ini, yang mengeksekusi biner XIDEL yang disematkan, tetapi saya tidak tahu cara meneruskan XML yang harus divalidasi. Tujuan saya adalah memilih file XML dari komputer saya dan menunjukkan hasil XIDEL dalam tampilan konten di dalam aplikasi saya.
struct ContentView: View {
@State var message = "Hello, World!"
@State var isRunning = false
var body: some View {
VStack {
Text("XML Validator")
.font(.largeTitle)
.padding()
HStack {
TextField("Message", text: $message)
.padding(.leading)
Button(action: {
let task = Process()
let bundle = Bundle.main
let execURL = bundle.url(forResource: "xidel", withExtension: nil)
guard execURL != nil else {
print("XIDEL executable could not be found!")
return
}
task.executableURL = execURL!
task.arguments = ["-e=//recipe/flavor1/text() my.xml"]
do {
try task.run()
print("XIDEL executed successfully!")
self.isRunning = true
} catch {
print("Error running XIDEL: \(error)")
self.isRunning = false
}
}) {
Text("Validate")
}.disabled(isRunning)
.padding(.trailing)
}
}.frame(maxWidth: .infinity, maxHeight: .infinity)
}
}

Jawaban
1 Asperi Aug 19 2020 at 18:05
Coba berikut ini
guard let path = Bundle.main.path(forResource: "my", ofType: "xml") else {
print("my.xml could not be found!")
return
}
task.arguments = ["-e=//recipe/flavor1/text()", path]
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'