blockly > utils > xml

utils.xml 命名空间

函数

功能 说明
createElement(tagName) 为 XML 创建 DOM 元素。
createTextNode(text) 为 XML 创建文本元素。
domToText(dom)

将 DOM 结构转换为纯文本。目前,文本格式相当难用:只占一行,没有空格。

控制字符使用十进制编码进行转义。其中包括 U+0000,即使从技术层面来讲,它也不是有效的 XML 字符(即使在 XML 1.1 中也是如此)。https://www.w3.org/TR/xml11/#charsets

解码后,U+0000 将解析为 U+FFFD(“替换字符”)。

injectDependencies(dependencies)

注入 document、DOMParser 和/或 XMLSerializer 的实现,以使用而不是默认实现。

供 Blockly 的 Node.js 封装容器(请参阅 scripts/package/node/core.js)改为提供 jsdom 软件包中的实现。

虽然它们可以单独设置,但通常情况下,所有这三个元素都取自同一个 JSDOM 实例。它们必须至少来自 jsdom 软件包的同一副本。(通常很难避免满足此要求,但使用 webpack 构建多个包含 Blockly 和 jsdom 的捆绑包,然后将多个捆绑包加载到同一个 JavaScript 运行时中,可能会无意间违反该要求。有关发生这种情况的示例,请参阅 https://github.com/google/blockly-samples/pull/1452#issuecomment-1364442135。)

textToDom(文本)

将 XML 字符串转换为 DOM 结构。

控制字符应转义。(不过,我们会尽最大努力解析非转义字符。)

请注意,即使进行了转义,U+0000 也会解析为 U+FFFD(“替换字符”),因为 U+0000 从来不是有效的 XML 字符(即使在 XML 1.1 中也是如此)。https://www.w3.org/TR/xml11/#charsets

变量

变量 说明
NAME_SPACE Blockly 的 XML 的命名空间。