2011-06-08 69 views
3

我有它指定一個可選字段的默認值的XML架構...如何獲取由xml架構設置的默認值?

<xs:element name="expiry" type="xs:positiveInteger" default="86400"/> 

我使用lxml來解析傳入的XML ...

root = lxml.etree.XML(xml) 

當我去尋找可選的元素,它不存在,我得到一個「無」的結果......

expiry = root.findtext('expiry') 

我該如何獲得到期值默認爲架構的默認值(8640 0)?

回答

1

不能用'魔法'來完成。漫長的路是今天的唯一途徑。

即:像xml文檔一樣讀取xmlschema,找到屬性爲「expiry」的元素標籤,在該標籤中查找屬性「default」的值。

+0

找到對應於XML節點的XSD元素的最佳方法是什麼? – 2016-11-17 18:53:26

+0

@GillBates在模式文檔中,找到具有與xml節點匹配的名稱屬性的xs:元素。 – 2016-11-17 21:52:46

+0

你可以得到如此多的結果 - 如何確定哪一個是正確的? – 2016-11-18 09:26:12

0

首先,你需要包括你的模式,使用lxml.etree.XMLSchema

我認爲它只做驗證,但你可能想嘗試與模式一起分析XML,看看「默認「值出現。