проблема с разбором карты сайта в PHP - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь проанализировать 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.

...