【发布时间】:2011-08-12 13:46:16
【问题描述】:
代码如下:
<item>
<title><![CDATA[OLK: The statement of shareholders for shares sale and for shares purchase]]></title>
<link>http://www.nasdaqomxbaltic.com/market/?pg=news&news_id=250910</link>
<description><![CDATA[<pre></pre>]]></description>
<pubDate>2011-08-12 16:25:00</pubDate>
<guid>250910</guid>
</item>
<item>
<title><![CDATA[ZMP: Pranešimas apie sandorius susijusį su emitento vertybiniais popieriais]]></title>
<link>http://www.nasdaqomxbaltic.com/market/?pg=news&news_id=250907</link>
<description><![CDATA[<pre></pre>]]></description>
<pubDate>2011-08-12 16:12:00</pubDate>
<guid>250907</guid>
</item>
我需要获取介于<title><![CDATA[ 和: 之间的值OLK、ZMP。在 php regex 中执行此操作的最快和最有效的方法是什么?为什么CDATA在这里?
注意:我也得到了 news_id=。
【问题讨论】:
-
不要为此使用正则表达式,使用适当的 XML 解析器
-
是更快还是更简单?因为我只需要速度。
-
@austin 接受的答案是错误的。由于所有现代语言都使用 PCRE,因此 Regex 可以很好地解析 HTML。请不要再链接到答案。不使用正则表达式解析 X(HT)ML 的唯一原因是因为有现成的解析器可用,并且它们比脆弱的正则表达式更健壮和可靠。
-
只是出于好奇,为什么不使用 XML 解析器,这样您就可以只获取您正在寻找的元素,而不必担心整个文档。