假设我有以下 xml:
<Person>
<Name>Tom</Name>
<Age/>
</Person>
是
Age
值的正确表示是空字符串,''
或空值,例如NULL
,None
,nil
等。例如在python中做它给出None
,但这是标准的一部分还是序列化决定?
>>> repr(etree.fromstring('<Person><Name>Tom</Name><Age/></Person>')
.xpath('/Person/Age')
[0].text)
# 'None'
在 XML 级别,空元素没有元素或文本节点子节点。
在XPath 1.0中,
/Person/Age/node()
返回一个空的节点列表;在 XPath 2.0+ 中,并且为空 sequence.
Python 示例中的
None
是 Python 的产物,而不是 XML 或 XPath。 /Person/Age
XPath 表达式返回一个包含 Age
元素的 Python 数组。在这种情况下,是 libxml Python 库决定返回 None
的 .text
属性。