如何使用Node.js检查字符串是否为XML

4

我需要帮助。我正在使用 Node.js 检查输入字符串是否为 json/xml。下面是我的代码,它可以输出来检查给定的字符串是否为 json。

isJSON = (str) => { 
    try { 
        return (JSON.parse(str) && !!str); 
    } catch (e) { 
        return false; 
    }
} 

const result= isJSON(string);       

所以,我可以检查字符串e.g. string是否为JSON格式。同样的方式,我需要检查XML格式的内容。

假设我有以下字符串:

const string = '<config xmlns="http://tail-f.com/ns/config/1.0">
   <devices xmlns="http://tail-f.com/ns/ncs">
      <global-settings>
         <read-timeout>120</read-timeout>

     </global-settings>
</devices>
</config>';

我需要使用node.js检查上述内容是否为XML格式。有人能帮助我解决这个问题吗?


https://dev59.com/l2XWa4cB1Zd3GeqPIwRO - kgangadhar
@gaetanoM:那个模块抛出了这个“Not Found - GET https://registry.npmjs.org/xmlChecker - Not found”错误。 - subhra_user
请查看此问题 - gaetanoM
1个回答

2
在XML中,第一个字符总是“<”。在JSON中,除了微不足道的情况外,第一个非空格字符将是“[”或“{”。因此很容易在它们之间进行选择。
之后,要确定它是格式良好的XML还是格式良好的JSON,您需要通过解析器来处理它。
(顺便说一句,我们还没有在node.js上找到一个具有处理边缘情况方面真正高度一致性的XML解析器。但有很多解析器对于实际目的来说已经足够好了。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接