首先,我的輸入格式不正確。所以基本上我有一堆標籤。我如何使用JavaScript/Regex提取<message>
標記之間的所有值?提取標籤之間的所有值
輸入:
<bad xml doc>
<a>dsda</a>
<message>hi</message>
<b></b>
<c>dsds</c>
<message>get this message too</message>
輸出:
喜
得到這個消息太
首先,我的輸入格式不正確。所以基本上我有一堆標籤。我如何使用JavaScript/Regex提取<message>
標記之間的所有值?提取標籤之間的所有值
輸入:
<bad xml doc>
<a>dsda</a>
<message>hi</message>
<b></b>
<c>dsds</c>
<message>get this message too</message>
輸出:
喜
得到這個消息太
您可以使用match與全球標誌:
var messages = text.match(/<message>(.*?)<\/message>/g).map(function (m) {
return m.slice(9, -10);
})
console.log(messages.join('\r\n'));
var text = '<bad xml doc>\
<a>dsda</a>\
<message>hi</message>\
<b></b>\
<c>dsds</c>\
<message>get this message too</message>';
var messages = text.match(/<message>(.*?)<\/message>/g).map(function (m) {
return m.slice(9, -10);
});
window.alert(messages.join('\r\n'));
var re = /<message>(.*)<\/message>/gm;
var str = '<bad xml doc>\n <a>dsda</a>\n <message>hi</message>\n<b></b>\n <c>dsds</c>\n<message>get this too</message>';
var m;
while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}
的jQuery實際上是解析和遍歷XML真的好以及HTML。該策略將創建一個與你的壞XML的jQuery對象,然後你可以使用CSS選擇器來查詢。
例如,以提醒第一消息中的文本:
var badDoc = $('<bad xml doc><a>dsda</a><message>hi</message><b></b><c>dsds</c><message>get this too</message>');
alert(badDoc.find('message')[0].innerHTML);
哪裏XML從哪裏來? – 2014-11-06 21:58:01
一個* malformated *文件永遠不能正確解析。不要試圖解決這些症狀。修復原因! – dognose 2014-11-06 22:02:09
它是連接成一個長字符串的錯誤消息,因此它包含許多xml消息以及文本。我只是試圖把它作爲一個文本輸入,並使用js /正則表達式來獲得標籤 –
gishman
2014-11-06 22:05:52