2015-01-05 86 views
0

我在xml文件中有<a>標籤。我想剝離<a>標籤。
如何在xml文件中剝離<a>標籤?

例如:

<test>This is a line with <a name="idp173968"></a> tags in it</test> 

我不能做str_replace更換標籤,因爲標籤<a>屬性是不同的。

我想:

preg_replace("/<a[^>]+\>/i", "", $content); 

如果標籤的結構是這樣<a name="idp173968"/>,它工作正常。

那麼,如何去除標籤在我的情況?

預期輸出:

<test>This is a line with tags in it</test> 
+1

[RegEx match open tags but XHTML self-contained tags](http://support.microsoft.com/kb/1732348/regex-match-open-tags-except-xhtml-self-contained-標籤) – Mureinik

回答

1

您可以嘗試一個非常簡單的正則表達式像

<a\s.*?<\/a> 

Regex Demo

echo preg_replace("/<a\s.*?<\/a>/i", "", $content); 
=> <test>This is a line with tags in it</test> 

$content="<test>This is a line with <a name=\"idp173968\"></a> tags in it</test><article-meta>asdf</article-meta>"; 
echo preg_replace("/<a\s.*?<\/a>/i", "", $content); 
=><test>This is a line with tags in it</test><article-meta>asdf</article-meta> 
+0

我在我的xml文件中有''標籤。因爲這個標籤在開始和結束時都有'',它也會替代它。如何避免它? – vidhya

+0

@VidhyaRaju只需在正則表達式中添加'\ s'來確保' nu11p01n73R

+0

非常感謝你 – vidhya

0
<?php 
$string = '<test>This is a line with <a name="idp173968"></a> tags in it</test>'; 
$pattern = '/<a\s.*?<\/a>/i'; 
echo preg_replace($pattern, "", $string); 
?>