Xml View |
|
(這是 LazyKit 的一部分.)
這套套件是 XmlTree 的工作進度。快速摘要
傳回節點的直接字串內容 (可為樹狀或純字串)。如果節點為混合內容的樹狀,則傳回 nil, 錯誤訊息
。
遞迴傳回節點的字串內容,包含階層內所有子元素。
檢視提供對 XmlTree 子項目的容易隨機存取。目前為唯讀。
目前的實作會在第一次存取時完全填充檢視,但可實作延遲實作。
在 tree
中建立字串檢視。檢視包含 tree
中所有元素名稱獨一無二,且不包含混合內容的直接子節點。存取名稱非獨一無二或有混合內容會導致錯誤。範例
<logentry> <type>INFO</info> <time>12:50</time> <receivedfrom>upstream1</receivedfrom> <receivedfrom>upstream2</receivedfrom> <body>This is a <b>test message</b></body> <empty/> </logentry> tree=lxptree.parsestring(s) sv = xmlview.string(tree) print(sv.type) -- "INFO" print(sv.time) -- "12:50" print(sv.empty) -- "" print(sv.receivedfrom) -- error "contains duplicate content" print(sv.body) -- error "contains mixed content"
在 tree
中建立文字檢視。檢視包含 tree
中所有元素名稱獨一無二的直接子節點。對這些子節點呼叫 xtext
,會提供這些節點遞迴的字元資料內容。存取名稱非獨一無二會導致錯誤。
在 tree
中建立元素檢視。檢視包含名稱符合條件的所有子元素樹狀清單。範例
ev = xmlview.elements(tree) ev.type => {{name="type", "INFO", n=1}, n=1} ev.receivedfrom => { {name="receivedfrom", "upstream1", n=1}, {name="receivedfrom", "upstream2", n=1}, n=2 }
element
會提供命名元素(若為獨一無二)。
firststring
、firsttext
和 firstelement
會是不用迭代整個樹狀結構的檢視,因為它們不必保證獨一無二。這對延遲樹狀結構更友善。