swift 解析 xml 响应 odoo
swift parsing xml response odoo
我正在寻找一个框架来将 xml 解析为 swift class swift
我有这样的反应
<?xml version='1.0'?>
<methodResponse>
<params>
<param>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>id</name>
<value>
<int>23</int>
</value>
</member>
<member>
<name>name</name>
<value>
<string>20190111_Patient _Test 1_Frank</string>
</value>
</member>
<member>
<name>partner_id</name>
<value>
<boolean>0</boolean>
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</param>
</params>
</methodResponse>
为了解析它,我正在尝试使用来自 https://github.com/gcharita/XMLMapper
的 XMLMapper
解析是将此响应转换为对象
问题是 xml 的响应在节点上没有名称我如何正确解析这个东西?
任何帮助将不胜感激
您可以对以下模型使用 XMLMapper 嵌套映射:
class MethodResponse: XMLMappable {
var nodeName: String!
var members: [Member]?
required init?(map: XMLMap) {}
func mapping(map: XMLMap) {
members <- map["params.param.value.array.data.value.struct.member"]
}
}
class Member: XMLMappable {
var nodeName: String!
var name: String?
var value: Value?
required init?(map: XMLMap) {}
func mapping(map: XMLMap) {
name <- map["name"]
value <- map["value"]
}
}
class Value: XMLMappable {
var nodeName: String!
var string: String?
var int: Int?
var boolean: Int?
required init?(map: XMLMap) {}
func mapping(map: XMLMap) {
string <- map["string"]
int <- map["int"]
boolean <- map["boolean"]
}
}
并映射 XML 调用 MethodResponse
class 的 init(XMLString:)
函数,例如:
let methodResponse = MethodResponse(XMLString: xmlString)
希望对您有所帮助。
我正在寻找一个框架来将 xml 解析为 swift class swift
我有这样的反应
<?xml version='1.0'?>
<methodResponse>
<params>
<param>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>id</name>
<value>
<int>23</int>
</value>
</member>
<member>
<name>name</name>
<value>
<string>20190111_Patient _Test 1_Frank</string>
</value>
</member>
<member>
<name>partner_id</name>
<value>
<boolean>0</boolean>
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</param>
</params>
</methodResponse>
为了解析它,我正在尝试使用来自 https://github.com/gcharita/XMLMapper
的 XMLMapper解析是将此响应转换为对象
问题是 xml 的响应在节点上没有名称我如何正确解析这个东西? 任何帮助将不胜感激
您可以对以下模型使用 XMLMapper 嵌套映射:
class MethodResponse: XMLMappable {
var nodeName: String!
var members: [Member]?
required init?(map: XMLMap) {}
func mapping(map: XMLMap) {
members <- map["params.param.value.array.data.value.struct.member"]
}
}
class Member: XMLMappable {
var nodeName: String!
var name: String?
var value: Value?
required init?(map: XMLMap) {}
func mapping(map: XMLMap) {
name <- map["name"]
value <- map["value"]
}
}
class Value: XMLMappable {
var nodeName: String!
var string: String?
var int: Int?
var boolean: Int?
required init?(map: XMLMap) {}
func mapping(map: XMLMap) {
string <- map["string"]
int <- map["int"]
boolean <- map["boolean"]
}
}
并映射 XML 调用 MethodResponse
class 的 init(XMLString:)
函数,例如:
let methodResponse = MethodResponse(XMLString: xmlString)
希望对您有所帮助。