2011-05-18 163 views
0

我無法解析xml文件中的特殊字符(我無法編輯文件)中的特殊字符,如'&'符號PHP。xml解析特殊字符,例如php中的'&'符號

下面是一個示例xml代碼片段,我嘗試使其工作並在php中顯示。

<?xml version="1.0" encoding="ISO-8859-1"?> <node> <test>Don't & forget me this weekend!</test> </node>

任何幫助,高度讚賞:)

+2

XML格式錯誤。你必須修理生產者。 – 2011-05-18 03:37:11

回答

1

在一個角落裏案:

str_replace("&", "&amp;", $xml); 

會使它正確解析。不幸的是,如果你有超過一個偉大或小於號轉義:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<node> 
    <test>Oh my < Goodness </test> 
</node> 

一個str_replace是不會工作。現在,你可以做正則表達式來測試像<[a-zA-Z],但隨後有:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<node> 
    <test>Oh my<Goodness </test> 
</node> 

所以這基本上會殺了你的使用正則表達式的機會。

我試着用SimpleXML,DOM,XmlReader解析你的XML,並嘗試了一些libxml屬性,但沒有任何工作。

因此,簡而言之,勝算不利於您。您的提供者需要生成正確的XML。

+0

問題。非常感謝 :) – denis 2011-05-29 04:52:31