0

xml2js ライブラリを使用して XLIFF ファイルを解析しようとしています。すべて正常に動作していますが、そのようなものがある場合:<source>Welcome to <x id="INTERPOLATION" equiv-text="{{ title }}"/> my friend</source>を取得し[{"_":"Welcome to my friend","x":[{"$":{"id":"INTERPOLATION","equiv-text":"{{ title }}"}}]}]ます。私は基本的に文の一部の順序を失っています。私は3つの部分の配列を取得することを期待しています:

"Welcome to "
[{"$":{"id":"INTERPOLATION","equiv-text":"{{ title }}"}}]
" my friend"

しかし、代わりに私は得ています:

"Welcome to my friend"
[{"$":{"id":"INTERPOLATION","equiv-text":"{{ title }}"}}]

文字列をもう一度再作成しようとすると、<source>Welcome to my friend<x id="INTERPOLATION" equiv-text="{{ title }}"/></source>

この XML パーサーまたは他のパーサーで解決する方法はありますか?

4

2 に答える 2

1

txmlも好きかもしれません。のように使用するとtxml.parse(yourXMLString)、次のようなオブジェクトが得られます。

[
  {
    "tagName": "source",
    "attributes": {},
    "children": [
      "Welcome to ",
      {
        "tagName": "x",
        "attributes": {
          "id": "INTERPOLATION",
          "equiv-text": "{{ title }}"
        },
        "children": []
      },
      " my friend"
    ]
  }
]

私はそれがあなたが探しているものとまったく同じように見えると思います. 内の 3 人の子供はsource、非常にきれいに使用できます。また、このパーサーのサイズはわずか 4kb であり、別のアーキテクチャでアプリを実行するときに問題を引き起こすネイティブ C コンパイルは必要ありません。

免責事項: 私は txml の作成者であり、この意見は客観的ではないかもしれません ;-)

于 2020-11-20T13:12:14.807 に答える