gpt4 book ai didi

xml - 双斜杠 (//) 作为 XML 注释

转载 作者:行者123 更新时间:2023-12-05 09:18:19 26 4
gpt4 key购买 nike

令我感到惊讶的是,使用双斜杠作为注释似乎是有效的 XML。

以下使用 Python 和 xml.etree.ElementTree 并在 xmllint --format 下正确解析:

<root>
<child1>text1</child1>
<child2></child2> //this is a valid comment
<child3></child3>
</root>

我最初认为这可以被视为根元素的文本节点,但在 python3 上尝试证明我错了:

>>> import xml.etree.ElementTree as ET
>>> r=ET.parse("test.xml").getroot()
>>> r.text
'\n '
>>> child2=r[1]
>>> child2.text
>>> ET.tostring(child2)
b'<child2 /> //this is a valid comment\n '

谁能告诉我允许这样做的规范?

最佳答案

XML 说明

不,comments 只能<!-- comment -->在 XML 中。你看到了 //this is a valid comment作为文本,在mixed content 中的元素之间是允许的.您可以很容易地忽略 // .

Python ElementTree 解释

ET.tostring(e)正在返回 e.tail (出现在 e 之后的文本)作为 e 的字符串表示的一部分.正如大多数人所期望的那样,这可能会令人困惑 ET.tostring(e)严格返回 e 元素的一些字符串值并且不包括它的文本节点兄弟。但是,由于 e.tail是 ET 元素数据结构的一部分,我想 ET 的设计者认为包含 e.tail 是合理的也是。

关于xml - 双斜杠 (//) 作为 XML 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44976974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com