gpt4 book ai didi

xml - NodeJs CMS - 构建 CMS 时以 XML 或 JSON 作为存储格式

转载 作者:搜寻专家 更新时间:2023-11-01 00:46:31 26 4
gpt4 key购买 nike

我正在使用 Express 在 NodeJs 之上用 javascript 编写 CMS。我的目标是构建我在过去几年中每天都在 .NET 中构建的东西,但现在完全是在 javascript 中构建的。目前,我有基本的工作流程,内联编辑页面(使用“contenteditable”属性),然后将那些可编辑 div 的 HTML 解析为 JSON 并将其存储在 MongoDB 中。

反过来,所需部分的 JSON 被解析回 HTML 服务器端,并使用 jQuery 插入到 JSDom 文档中,然后整个文档被发送到客户端。

这一切都很完美,但现在我正在与一位质疑 HTML 存储为 JSON 的部分的同事进行讨论。在他看来,这应该是 XML,但在将所有内容更改为 XML 之前,我想听听更多关于此事的意见。

XML 是否在流程的任何部分都优于 JSON?我将不得不使用 XSLT 将 XML 格式化为 HTML,而不是像我所知道的那样将 JSON 解析回 HTML。

如有任何意见,我们将不胜感激。

最佳答案

是的,JSON 适用于 Javascript 中的对象,而 XML 适用于您要存储的 HTML。因此,看看 JSONML,这是一种记录 XML 的 JSON 语法。规范非常简单,所以在这里简单介绍一下。

  1. 你从一个代表(根) Node 的数组开始
  2. 这个数组的第一项是代表 Node 名称的字符串
  3. 下一项,如果是对象,则为 Node 上所有属性的枚举
  4. 数组的其余部分代表 Node 的子 Node (如果有的话)。这里的每个项目可以是一个字符串(对于文本 Node )或另一个遵守相同规则的数组(对于元素 Node )

这是一个 JSONML 的例子:

[
"lcSequenceOption",
[
"lcAnswerContent",
"Some answer content"
],
[
"lcSequence",
{
"value": 0
}
]
]

转换为以下 XML:

<lcSequenceOption>
<lcAnswerContent>Some answer content</lcAnswerContent>
<lcSequence value="0" />
</lcSequenceOption>

JSONML 不提供处理指令的表示法。在 JSONML 之上编写自定义规则并不难。在我工作的组织中,我们解释以“?”开头的每个 Node 名(规则 2)。作为处理指令。

关于xml - NodeJs CMS - 构建 CMS 时以 XML 或 JSON 作为存储格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942222/

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