微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用节点XML解析器解析XLIFF

如何解决使用节点XML解析器解析XLIFF

我正在尝试使用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解析器或其他解析器解决它吗?

解决方法

您可能还会喜欢txml。当像txml.parse(yourXMLString)这样使用它时,您将得到一个这样的对象:

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

我认为它绝对符合您的需求。 source中的三个孩子非常干净。而且,此解析器只有4kb的大小,并且不需要进行本机c编译,否则将在其他体系结构上运行您的应用程序时造成麻烦。

免责声明:我是txml的作者,这种观点可能不是客观的;-)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。