2016-07-14 35 views
-2

我有這樣的XML:PHP - 刪除節點,並保持它的內容

<parent> 
    <0> 
    <url> 
     <loc>name1</loc> 
     <date>monthly</date> 
    </url> 
    </0> 
    <1> 
    <url> 
     <loc>alexJones</loc> 
     <date>monthly</date> 
    </url> 
    </1> 
</parent> 

我想刪除<0></0><1></1>和新的XML將是:

<parent> 
    <url> 
     <loc>name1</loc> 
     <date>monthly</date> 
    </url> 
    <url> 
     <loc>alexJones</loc> 
     <date>monthly</date> 
    </url> 
</parent> 

我已經知道我可以使用xml-> children(), 來檢索xml節點,但是有什麼建議可以做到這一點?

+0

如果您知道名稱或至少是節點的模式,則可以使用str_replace或preg_replace –

回答

0

這是一個無效的XML,libxml不會加載它。所以這可能是在XML字符串中使用正則表達式的有效例外之一。

$repairedXml = preg_replace('(</?\\d+>)', '', $invalidXml); 

該模式匹配只包含數字且沒有屬性的標籤。

這些標籤名稱無效,標籤名稱不能以數字開頭。