Я пытаюсь проанализировать sitemap.xml
с помощью PHP
.
. Я протестировал несколько методов.
1) захватить и загрузить xml
строку через simplexml_load_string
PHPметод.Чтобы быть обобщенным, я извлекал loc
в url
узле.
<url>
<loc>http://example.com/</loc>
<lastmod>2010-09-29T10:38:11+00:00</lastmod>
<changefreq>monthly</changefreq>
</url>
Но это немедленно поднимает проблему, если узлы похожи на это.
<ns1:url>
<ns1:loc>https://www.example.com/</ns1:loc>
<ns1:changefreq>daily</ns1:changefreq>
<ns1:priority>1</ns1:priority>
</ns1:url>
вышеМетод не анализирует такой ответ.Поэтому я решил использовать Regular expressions
.
2) Я пытался захватить содержимое внутри loc
с этим RE./loc>(.*?)</
.
Я выполнил вот так.
preg_match_all($expression, $sitemap, $matches);
$matches
Переменная дает только 12 URL.есть ли ограничения с preg_match_all
?если да, то как это преодолеть?
Любая помощь или предложение будут огромной помощью.
TIA.
PS.В файле sitemap.xml
содержится более 200 URL.