Как использовать Perl-совместимое регулярное выражение для удаления XML-тега из XML-текста в PHP? - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть этот контент XML:

$XML = "<item xmlns='http://...'>Some value</item>";

Я хочу извлечь значение из тега, поэтому я использую следующее регулярное выражение:

$Value = preg_replace("/^<item [.]+>/","",$XML);
$Value = preg_replace("/</item>$/","",$Value);

Но это не такработа, $ Value, наконец, по-прежнему такой же, как $ XML.Как это исправить?

1 Ответ

2 голосов
/ 22 ноября 2011

Если вы хотите извлечь текст внутри тега, вы можете использовать этот код:

$string = "<item xmlns='http://...'>Some value</item>";
$regex = '#<.*?>(.*?)</.*?>#';
preg_match_all($regex, $string, $matches);
$matches = $matches[1][0];
echo $matches;

Если вы хотите использовать preg_replace, используйте этот код:

$Value = preg_replace("/^<item .+?>/","",$XML);
$Value = preg_replace("/<\/item>$/","",$Value);
...