0

我一直在使用正则表达式来定位 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 后,它就像一个魅力。谢谢你的时间!

4

1 回答 1

0

一段时间后我想通了。这个问题是基于错误的前提。这个问题与 XML 无关,而是我的正则表达式匹配元素之间的任何内容,但换行符除外。在我的表达式末尾添加 /s 后,它就像一个魅力。谢谢你的时间!

于 2012-12-18T23:56:51.093 回答