javascript - 使用 JQuery 从 XML 中提取图像链接

标签 javascript jquery xml image

我有一些 JavaScript 应该使用以下代码从 XML 文档获取此图像 URL[1]。然而,Chrome 的控制台在这一行返回 Uncaught TypeError: Cannot read property '1' of null 。正则表达式是否不正确?

var image = $(post.description.match(/<br\/>(<a.*><img.*<\/a>)<br\/>/)[1]).addClass('photo');

[1] http://photos-c.ak.fbcdn.net/hphotos-ak-ash4/391316_483838581645230_1080523933_s.jpg

XML 的结构如下:

<description>
<![CDATA[
Extendemos una cordial felicitación a Reserva de la Biosfera Banco Chinchorro que celebra su aniversario el día de hoy.
Un especial saludo a Maricarmen García, Directora de la Reserva y Líder 2010 del Programa de Liderazgo. ¡Estamos muy
orgullosos de su trabajo!<br /> <br /> We would like to co
]]>
<![CDATA[
ngratulate Banco Chinchorro Biosphere Reserve who is celebrating their anniversary today. A special greeting to Maricarmen
García, the Reserve&#039;s Director and 2010 MAR Leadership Fellow. We are so proud of your work!<br /> <br />
<a href="http://pyucatan.conanp.gob.mx/chincho.htm" target="_blank" rel="nofollow nofollow"
onmousedown="UntrustedLink.bootstrap($(this), &quot;HAQE2sh3f&quot;, event, bagof({}));">http://pyucatan.conanp.gob.mx/chincho.htm</a><br/><br/>
<a href="http://www.facebook.com/photo.php?fbid=483838581645230&amp;set=a.167790786583346.41662.123942950968130&amp;type=1&amp;relevant_count=1"
title="" target=""><img class="img" src="http://photos-c.ak.fbcdn.net/hphotos-ak-ash4/391316_483838581645230_1080523933_s.jpg" alt="" /></a>
]]>
</description>

最佳答案

Is the regex incorrect?

是的。 /<br\/>(<a.*><img.*<\/a>)<br\/>/尝试匹配没有空格的 br-tags,并且在您给我们的字符串中也没有 <br>链接后。因此,匹配返回 null并且没有属性“1 ”。

无论如何,Regex is not suited为了这个任务。只需获取 textContent 您的<description>节点,使用 jQuery 将其解析为 HTML(请参阅 Can jQuery Parse HTML Stored in a Variable? ),甚至使用 jQuery.parseXML 将其解析为 X[HT]ML ,并使用selector to get a > img元素,以便读取 src属性。

关于javascript - 使用 JQuery 从 XML 中提取图像链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11576751/

相关文章:

javascript - 如果返回 false,则在 JavaScript 中打印出 div

jquery - 添加 img 属性的响应式图像替换

java - 模式验证中的正则表达式

CSS 显示元素属性值,而不是元素内容

javascript - 在react组件中使用Lodash mapKeys触发错误

javascript - 将所有路由重定向到 Heroku 托管的 nuxt 项目中的 https

javascript - bookshelf js 中的多个 order By() 列

php - 高效有效的表单验证

javascript - 我需要为正在使用的 Accordion 更改颜色

xml - 如何在这里使用 XPath contains()?