Xml 视图 |
|
(这是 LazyKit 的一部分。)
此包正在为 XmlTree 开发中。快速概览
返回节点的直接字符串内容(节点可以是树,也可以是简单的字符串)。如果节点是包含混合内容的树,则返回 nil,errormessage
。
递归地返回节点的字符串内容,遍历所有子元素。
视图提供对 XmlTree 子节点的简单随机访问。它们目前是只读的。
当前实现会在首次访问时完全填充它们,但也可以实现延迟加载。
在树上创建一个字符串视图。该视图包含树的所有直接子节点,这些子节点具有唯一的元素名称并且不包含混合内容。访问非唯一名称或包含混合内容的名称会导致错误。示例
<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"
在树上创建一个文本视图。该视图包含树的所有直接子节点,这些子节点具有唯一的元素名称。对这些子节点调用 xtext
,提供这些节点的递归字符数据内容。访问非唯一名称会导致错误。
在树上创建一个元素视图。该视图包含具有给定名称的所有子元素树的列表。示例
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
将是无需遍历整个树的视图,因为它们不需要保证唯一性。这可能对延迟加载树更友好。