[英]Struct convert to xml (Swift)
我從javascript接收了xml並將其解析為結構。
struct gcrInfoStruct {
var folderView = " "
var actionType = " "
var isProtocolReview = " "
var folder: [folderDetail] = []
}
我怎樣才能將此結構轉換回xml,以便傳遞給javascript?
從您的代碼中,我不知道folderDetail
類型是什么樣子,但讓我們假設它是這樣的:
struct folderDetail {
var desc:String
var value:String
}
我也不知道您的XML模式是什么,但讓我們假設它是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<gcrInfoStruct>
<folderView>Folder View String</folderView>
<actionType>Action Type String</actionType>
<isProtocolReview>True or False</isProtocolReview>
<folder>
<folder1desc>folder1value</folder1desc>
<folder2desc>folder2value</folder2desc>
</folder>
</gcrInfoStruct>"
如果我猜對了,那么要生成XML,我們只需要生成一個基於struct匹配模式的字符串即可,例如
extension gcrInfoStruct {
func xml() -> String {
var string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><gcrInfoStruct><folderView>\(folderView)</folderView><actionType>\(actionType)</actionType><isProtocolReview>\(isProtocolReview)</isProtocolReview><folder>"
for i in self.folder {
string.appendContentsOf("<\(i.desc)>\(i.value)</\(i.desc)>")
}
string.appendContentsOf("</folder></gcrInfoStruct>")
return string
}
}
為了實現,我們要做這樣的事情:
var gcr = gcrInfoStruct()
// update properties
let xml = gcr.xml()
但是,如果我們想將XML作為NSData返回,則可以添加以下附加代碼:
extension gcrInfoStruct {
func xmlData() -> NSData? {
return self.xml().dataUsingEncoding(NSUTF8StringEncoding)
}
}
並實施我們將執行以下操作:
var gcr = gcrInfoStruct()
// update properties
let data = gcr.xmlData()
可能是folderDetail
不僅僅是一對字符串,或者XML模式有所不同,但希望這里有足夠的內容讓您入門。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.