给定一个任意字符串,如何确定它是否包含XML,并在node.js应用程序中解析它?
实施例
var s = 'hello world <hello type="greeting">world</hello>';
我尝试了nodexml和xml2js,但它们都要求整个字符串都是XML。
为清晰起见编辑:
理想情况下,我喜欢这样的东西:
var s = 'hello world <hello type="greeting">world</hello>';
var parsed = parse( s );
console.log( parsed );
{
originalString: 'hello world <hello type="greeting">world</hello>',
textOnly: 'hello world ',
js: {
hello: {
type: 'greeting'
'@text': 'world'
}
}
}
答案 0 :(得分:0)
您可以尝试使用node-htmlparser
加载字符串npm install htmlparser
由于其解析器对格式错误的部分HTML字符串感到宽容,因此您应该能够加载任何输入,然后检查特定的HTML标记,以确定解析的数据是否返回了DOM。
答案 1 :(得分:0)
我的建议是使用htmlparser2。的 Demo 强>
gumbo-parser : 34.9208 ms/file ± 21.4238
html-parser : 24.8224 ms/file ± 15.8703
html5 : 419.597 ms/file ± 264.265
htmlparser : 60.0722 ms/file ± 384.844
htmlparser2-dom: 12.0749 ms/file ± 6.49474
htmlparser2 : 7.49130 ms/file ± 5.74368
hubbub : 30.4980 ms/file ± 16.4682
libxmljs : 14.1338 ms/file ± 18.6541
parse5 : 22.0439 ms/file ± 15.3743
sax : 49.6513 ms/file ± 26.6032
宽松的HTML / XML / RSS解析器。解析器可以处理流并提供回调接口。这是htmlparser模块的一个分支。主要区别在于它仅用于节点(它使用browserify在其他平台上运行)。
使用以下数据进行测试:
uuid
输出: 请参阅demo link输出
绩效评估:
id