gpt4 book ai didi

parsing - DOM 树解析和语法树解析之间的区别?

转载 作者:行者123 更新时间:2023-12-02 02:16:00 30 4
gpt4 key购买 nike

解析 HTML 或 XML 文件后,我们可以得到 DOM 树。

解析 C、C++ 或 JavaScript 后,我​​们可以得到语法树。

请注意,语法树是基于上下文无关语法构建的,该语法指定了有效的 C/C++/JS 程序。

但似乎 DOM 树只是一个纯层次结构,仅由 HTML/XML 文件指定。真的吗?这就是解析后进行Schema Validation的原因吗?这两种解析树的根本区别是什么?

最佳答案

与任何其他语言一样,XML 由语法描述。 XML 的语法相当简单(开始标签、结束标签、正确嵌套)。所以语法树也可能看起来很简单(只是元素的层次结构)。 XML 模式是另一种描述 XML 文件内容的语法。

所以基本上它是两个解析器被相互调用。第一个验证所有开始标签都有一个结束标签并且嵌套是正确的。

第二个解析器验证 XML 文件的内容是根据架构(语法)构建的……就像名为“B”的元素只能包含在名为“A”的元素中。

这不应与解析 C 等编程语言相比,因为您无法更改编程语言的语法。 If 语句只能出现在函数体中,不能出现在函数体之外,而且你不能改变它。但是,在 XML 中,您可以指定“B”元素只能出现在“A”元素中,或者“A”元素只能出现在“B”元素中。所有这些都通过指定 XML 文件内容的语法以模式的形式。

关于parsing - DOM 树解析和语法树解析之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10607429/

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