繁体   English   中英

使用JavaScript从XML字符串中提取值

[英]Extract a value from an XML string using JavaScript

我面临以下问题:

给我一个XML字符串和一条消息(字符串),我需要一个函数,该函数可以解析XML字符串并返回存在消息的XML标签(id =“ x”)的ID数组。

我只能为此使用JavaScript。

 function getIdByMessage(xml, message) { // problem to solve } var xml = ` <test>blabla</test> <otherstuff>MoreStuff</otherstuff> <message-not-relevant>Not relevant</message-not-relevant> <entry id="4">Function Message<entry> <otherstuff>MoreStuff</otherstuff> <message-not-relevant>Not relevant</message-not-relevant> <entry id="3">Function Message<entry> <otherstuff>MoreStuff</otherstuff> <message-not-relevant>Not relevant</message-not-relevant> ` getIdByMessage(xml, 'Function Message'); // should return [4, 3]; 

首先将XML解析为DOM:例如, 使用JavaScript解析XML

然后,在生成的DOM Document对象上,执行XPath表达式

//entry[. = 'Function Message']/@id

这将返回一组属性节点。

根据xml中的内容,您不必解析它。 您可能仅通过搜索id =“ number”就可以摆脱困境

例如:

let matches = xml.match(/id="[\d]+"/gm);
let entryIds = matches.map(m => m.match(/\d+/)[0]));

或者在第一行匹配整个标签。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM