golang處理讀寫xml時,是和乙個結構體對應的。
因此,每個每個xml節點的屬性,都是結構體的字段,是定死的。
type student struct
type addr struct
gaofeng
sz
但是如果有些屬性是動態,比如
待解析/待生成的資料可能是資料1,也可能是資料2. 就是說myitem有哪些屬性,不是提前定死的。
資料1:
gaofeng
sz資料2:
gaofeng
sz
可以使用下面的**進行處理
package main
import (
"encoding/xml"
"fmt"
)type student struct
type addr struct
type item struct
func main() }
p.address.myitem = item{}
p.address.myitem.attributes = xml.attr{}
tt:=xml.attr, value:"vvv&11"}
tt=xml.attr, value:"vvv22"}
// 生成xml
buf, _ := xml.marshal(p)
fmt.println(string(buf))
// 解析xml
var s = `gaofengsz`
fmt.println(s)
pp := new(student)
xml.unmarshal(byte(s), pp)
fmt.println(pp.address.city)
fmt.println(pp.address.myitem.attributes[0].value)
}
例項屬性和方法的動態處理 getattr
正常情況下,當呼叫類的方法或屬性時,如果不存在,就會報錯 要避免這個錯誤,除了可以加上那個要呼叫但不存在的屬性外,python還有另乙個機制,那就是寫乙個 getattr 方法,動態返回乙個屬性 只有在沒有找到屬性的情況下,才呼叫 getattr 已有的屬性會直接在類屬性裡查詢,不會在 getatt...
動態繫結屬性
動態繫結屬性 dict 先看下面的 class a def init self,a,b,c,d,e self.a a self.b b self.c c self.d d self.e e p1 a 1,2,3,4,5 print dir p1 class delattr dict dir doc ...
動態屬性Form Bean
回到首頁 還是簡單認知,從原始的jsp,到後期簡單分層,再到現在通用的spring生態,有個演變過程。這些陳舊的框架或者技術已經廢棄不用了,但是過程還是有價值的。struts允許開發人員在配置檔案中宣告乙個form bean,而無須手工針對每乙個表單設計乙個form bean。步驟 配置乙個元素,將...