我一直在使用正则表达式来定位 XML 元素之间的文本,它适用于 XML 树中的大多数元素。但是,在 Web 浏览器中查看原始 XML 文档时可单击/可扩展的元素不会成为正则表达式的目标。当我在 PHP 中使用 preg_match 时,我只得到一个空数组。
现在,我知道有效,但为了清楚起见,这里是:
$contents "random fetched xml doc";
$regex = '/<element>(.*?)<\/element>/';
preg_match_all($regex, $contents, $output);
print_r($output);
请注意:我用谷歌搜索了这个问题,发现很多结果说你不应该用正则表达式解析 XML。我对学习如何解析 XML不感兴趣,我正在学习一种从网站上抓取数据的技术,我只是在包含 XML 页面的网站上练习,因为它们提供了直观的分隔符(XML 标记)。
我的问题很简单:如何修改我的正则表达式以定位可扩展的 XML 元素?
编辑:已解决的问题 该问题基于错误的前提。这个问题与 XML 无关,而是我的正则表达式匹配元素之间的任何内容,但换行符除外。在我的表达式末尾添加 /s 后,它就像一个魅力。谢谢你的时间!