【问题标题】:How to parse a structured (XML Like) texts in JavaScript?如何在 JavaScript 中解析结构化(类似 XML)文本?
【发布时间】:2021-02-16 14:03:25
【问题描述】:

我有一个嵌套格式的文本数据,如 XML 格式,但使用括号 {} 而不是 。解析它的最佳方法是什么,也许将其转换为 XML 格式?然后我会像在页面上显示它或将信息保存在数据库中一样对其进行操作。

看起来是这样的:

{myItem num="345"}
{subItem num="1"}
My Sub item Texts
{/subItem}
{subItem num="2"}
My Sub item Texts
{/subItem}
{/myItem}

如您所见,它看起来像 XML 格式,但使用了括号。

【问题讨论】:

  • 您可以将{ 替换为<,将} 替换为>。 (如果中间的文字可以有},应该用反斜杠转义)

标签: javascript xml parsing


【解决方案1】:

将所有数据读入一个字符串并使用replace函数将所有'{'替换为''

var str = "{myItem num="345"}{subItem num="1"}My Sub item Texts {/subItem}{subItem 
           num="2"}My Sub item Texts{/subItem}{/myItem}";

var res = str.replace("{", "<");
var res2use = res.replace("}", ">");

【讨论】:

    【解决方案2】:

    除非这种“结构化”语言有规范,否则它不是一种形式语言,由于缺乏可遵循的固定语法,它的解析可能比标记或编程语言解析更倾向于Natural Language Processing (NLP)

    {} 替换为&lt;&gt; 的词法假设很多,包括:

    • {} 是否仅作为标记出现?
    • 是否遵循所有其他 XML 格式正确的规则?

    作为一个非常粗略的第一次切割,您可以应用上述替换,然后按照How to parse invalid (bad / not well-formed) XML? 提供的指导进行操作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-26
      • 2012-03-31
      相关资源
      最近更新 更多