簡體   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