删除<! - ?xml / - >标记及其内容

时间:2011-10-20 09:58:44

标签: php regex

我在PHP中有一个字符串,其中包含以下内容:

<div>some html</div>
<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />
<div>more html</div>

我需要删除所有出现的xml标记及其包含的所有内容。我认为可以使用正则表达式来做到这一点,但我不知道如何使用它。

2 个答案:

答案 0 :(得分:2)

如果要删除所有标记或此

,请使用strip_tags
$string =' <tag> asdasd <tag>asdasd</tag> <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /> text';

echo preg_replace('/<\?xml[^>]+\/>/im', '', $string);

答案 1 :(得分:0)

在某些情况下会失败,但它适用于您提供的字符串:

$string = '
    <div>some html</div>
    <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />
    <div>more html</div>
';
preg_replace('/<\?xml.*?\/>/im', '', $string);