@a-mehrabi/aranode-amqp-client 中文文档教程

发布于 3年前 浏览 18 更新于 3年前

XML PARSER Module

aranode 流引擎的 xml 解析器实现。

Table of Contents

Installation

要在您的 aranode 项目中安装此模块, 你只需要使用以下命令添加包:

$ yarn add @a-mehrabi/aranode-xml-parser

之后,当你想使用它时, 您必须将其包含在自定义模块中,如下所示:

path: .env

ARANODE_CUSTOM_MODULES=@a-mehrabi/aranode-xml-parser

Usage

要使用 xml 编码器或解码器,您需要使用编码器或解码器相关描述:

  1. xml encoder flow description (xmlEncoder)
  2. xml decoder flow description (xmlDecoder)

xml encoder

xml encoder flow description使您能够将 xml 编码器定义为流节点,包括缩进、noArrayIndent 配置等。
xml 编码器,将 javascript 文字对象编码为 xml 字符串。

version: 1
kind: flow
name: flow-name
entryPoint: start

flow:
  start:
    transform:
      path: 'dist/get-payload-transformer.js'
    nextNode: initXmlEncoder

  initXmlEncoder:
    xmlEncoder:
      headless: false
    nextNode: checkPayload

  checkPayload:
    transform:
      path: 'dist/check-payload-transformer.js'
    terminal: true

xml decoder

xml 解码器流描述使您能够将 xml 解码器定义为流节点。
xml 解码器,将 xml 字符串解码为 javascript 文字对象。

version: 1
kind: flow
name: flow-name
entryPoint: start

flow:
  start:
    transform:
      path: 'dist/get-payload-transformer.js'
    nextNode: initXmlDecoder

  initXmlDecoder:
    xmlDecoder:
      explicitCharkey: false
    nextNode: checkPayload

  checkPayload:
    transform:
      path: 'dist/check-payload-transformer.js'
    terminal: true

API

xmlEncoder

类型:流程描述

选项:

  • attrkey(字符串),可选,默认值 = '$'

    用于访问属性的前缀。

  • charkey (string),可选,默认= '_'

    用于访问字符内容的前缀。

  • rootName(字符串),

    在 explicitRoot 为 false 时使用的可选根元素名称 或覆盖根元素名称。 (默认根或根键名称)

  • doctype(任意),可选,默认 = null

    可选 DTD。 例如。 {'分机':'你好.dtd'}。

  • headless(布尔值),可选,默认值 = false

    省略 XML 标头。

  • allowSurrogateChars(布尔值),可选,默认值 = false

    允许使用来自 Unicode 代理项块的字符。

  • cdata (boolean), optional, default = false

    在 中包裹文本节点,而不是在必要时转义。 如果不需要,则不添加 。

xmllDecoder

类型:流程描述

选项:

  • key(字符串),可选

  • attrkey(字符串),可选,默认 = '$'

    用于访问属性的前缀。

  • charkey (string),可选,默认= '_'

    用于访问字符内容的前缀。

  • explicitCharkey (boolean),可选,默认 = false

  • trim (boolean),可选,default = false

    修剪文本节点开头和结尾的空白。

  • normalizeTags(布尔值),可选,默认 = false

    将所有标签名称规范化为小写。

  • normalize(布尔值),可选,默认 = false

    修剪文本节点内的空格。

  • explicitRoot (boolean), optional, default = true

    如果你想得到结果对象中的根节点,设置这个。

  • explicitArray (boolean), optional, default = true

    如果为真,则始终将子节点放入数组中; 否则,仅当存在多个时才创建一个数组。

  • ignoreAttrs (boolean), optional, default = false

    忽略所有 XML 属性,只创建文本节点。

  • mergeAttrs (boolean), optional, default = false

    合并属性和子元素作为父元素的属性,
    而不是关闭子属性对象的键控属性。
    如果 ignoreAttrs 为真,则忽略此选项。

  • xmlns (boolean), optional, default = false

    给每个元素一个字段,通常叫做'$ns'(第一个字符和attrkey一样)
    包含其本地名称和名称空间 URI。

  • explicitChildren (boolean), optional, default = false

    将子元素放在单独的属性中。 不适用于 mergeAttrs = true。
    如果元素没有子元素,则不会创建“子元素”。

  • childkey(字符串),可选,默认值 = '$$'

    如果 explicitChildren 设置为 true,则用于访问子元素的前缀。

  • preserveChildrenOrder(布尔值),可选,默认值 = false

    修改 explicitChildren 的行为,以便“children”属性的值成为有序数组。
    如果为真,每个节点还将获得一个#name 字段,其值将对应于 XML nodeName,
    这样您就可以迭代“children”数组并且仍然能够确定节点名称。
    命名(并且可能无序)属性也保留在此配置中,与有序的“子”数组处于同一级别。

  • charsAsChildren(布尔值),可选,默认值 = false

    如果 explicitChildren 打开,则确定字符是否应被视为子项。

  • includeWhiteChars(布尔值),可选,默认值 = false

    确定是否应包含纯空白文本节点。

  • async (boolean), optional, default = false

    回调应该是异步的吗? 如果您的代码依赖于回调的同步执行,这可能是一个不兼容的更改。
    xml2js 的未来版本可能会更改此默认值,因此建议无论如何不要依赖于同步执行。

  • strict (boolean), optional, default = true

    设置sax-js为严格或非严格解析模式。
    强烈推荐默认为 true,
    因为解析格式不正确的 XML 的 HTML 可能会产生任何结果。

  • chunkSize(数字),可选

XML PARSER Module

xml parser implementation for aranode flow engine.

Table of Contents

Installation

To install this module in your aranode project, you just need to add the package using following command:

$ yarn add @a-mehrabi/aranode-xml-parser

After that, when you want to use it, you must include it in custom modules like the following:

path: .env

ARANODE_CUSTOM_MODULES=@a-mehrabi/aranode-xml-parser

Usage

For using xml encoder or decoder, you need to use encoder or decoder associated description:

  1. xml encoder flow description (xmlEncoder)
  2. xml decoder flow description (xmlDecoder)

xml encoder

xml encoder flow description enables you to define the xml encoder as a flow node, including indent, noArrayIndent config, etc.
xml encoder, encodes javascript literal object to xml string.

version: 1
kind: flow
name: flow-name
entryPoint: start

flow:
  start:
    transform:
      path: 'dist/get-payload-transformer.js'
    nextNode: initXmlEncoder

  initXmlEncoder:
    xmlEncoder:
      headless: false
    nextNode: checkPayload

  checkPayload:
    transform:
      path: 'dist/check-payload-transformer.js'
    terminal: true

xml decoder

xml decoder flow description enables you to define the xml decoder as a flow node.
xml decoder, decodes xml string to javascript literal object.

version: 1
kind: flow
name: flow-name
entryPoint: start

flow:
  start:
    transform:
      path: 'dist/get-payload-transformer.js'
    nextNode: initXmlDecoder

  initXmlDecoder:
    xmlDecoder:
      explicitCharkey: false
    nextNode: checkPayload

  checkPayload:
    transform:
      path: 'dist/check-payload-transformer.js'
    terminal: true

API

xmlEncoder

Type: flow description

Options:

  • attrkey (string), optional, default = '$'

    Prefix that is used to access the attributes.

  • charkey (string), optional, default = '_'

    Prefix that is used to access the character content.

  • rootName (string), optional

    Root element name to be used in case explicitRoot is false or to override the root element name. (default root or the root key name)

  • doctype (any), optional, default = null

    Optional DTD. Eg. {'ext': 'hello.dtd'}.

  • headless (boolean), optional, default = false

    Omit the XML header.

  • allowSurrogateChars (boolean), optional, default = false

    Allows using characters from the Unicode surrogate blocks.

  • cdata (boolean), optional, default = false

    Wrap text nodes in instead of escaping when necessary. Does not add if it is not required.

xmllDecoder

Type: flow description

Options:

  • key (string), optional

  • attrkey (string), optional, default = '$'

    Prefix that is used to access the attributes.

  • charkey (string), optional, default = '_'

    Prefix that is used to access the character content.

  • explicitCharkey (boolean), optional, default = false

  • trim (boolean), optional, default = false

    Trim the whitespace at the beginning and end of text nodes.

  • normalizeTags (boolean), optional, default = false

    Normalize all tag names to lowercase.

  • normalize (boolean), optional, default = false

    Trim whitespaces inside text nodes.

  • explicitRoot (boolean), optional, default = true

    Set this if you want to get the root node in the resulting object.

  • explicitArray (boolean), optional, default = true

    Always put child nodes in an array if true; otherwise an array is created only if there is more than one.

  • ignoreAttrs (boolean), optional, default = false

    Ignore all XML attributes and only create text nodes.

  • mergeAttrs (boolean), optional, default = false

    Merge attributes and child elements as properties of the parent,
    instead of keying attributes off a child attribute object.
    This option is ignored if ignoreAttrs is true.

  • xmlns (boolean), optional, default = false

    Give each element a field usually called '$ns' (the first character is the same as attrkey)
    that contains its local name and namespace URI.

  • explicitChildren (boolean), optional, default = false

    Put child elements to separate property. Doesn't work with mergeAttrs = true.
    If element has no children then "children" won't be created.

  • childkey (string), optional, default = '$$'

    Prefix that is used to access child elements if explicitChildren is set to true.

  • preserveChildrenOrder (boolean), optional, default = false

    Modifies the behavior of explicitChildren so that the value of the "children" property becomes an ordered array.
    When this is true, every node will also get a #name field whose value will correspond to the XML nodeName,
    so that you may iterate the "children" array and still be able to determine node names.
    The named (and potentially unordered) properties are also retained in this configuration at the same level as the ordered "children" array.

  • charsAsChildren (boolean), optional, default = false

    Determines whether chars should be considered children if explicitChildren is on.

  • includeWhiteChars (boolean), optional, default = false

    Determines whether whitespace-only text nodes should be included.

  • async (boolean), optional, default = false

    Should the callbacks be async? This might be an incompatible change if your code depends on sync execution of callbacks.
    Future versions of xml2js might change this default, so the recommendation is to not depend on sync execution anyway.

  • strict (boolean), optional, default = true

    Set sax-js to strict or non-strict parsing mode.
    Defaults to true which is highly recommended,
    since parsing HTML which is not well-formed XML might yield just about anything.

  • chunkSize (number), optional

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文