2013-04-02 19 views
2

什麼是最好的xml解析器特別適用於XML,技術上無效的格式,缺少<?xml標記?無效格式xml的最佳PHP解析器

我不能使用simpleXML,因爲這會導致無效的錯誤。我知道我可以手動添加我需要的XML後,我需要的標籤,但ID寧願看到你們認爲是解析一個XML到PHP數組的最佳方法。

+0

,如果它不是有效的XML,然後在技術上它不是真正的XML ...所以不要看一個XML解析器來處理的是不是真正的XML。期待雞肉成爲你的香蕉並不是很有用。 –

+0

...大多數時候我得到這樣的錯誤,這是因爲「禁止」的XML字符,請點擊這裏:http://stackoverflow.com/questions/730133/invalid-characters-in-xml – 2013-04-02 18:14:56

+0

你是什麼意思的「技術上無效「?沒有'<?xml'序言本身並不足以使其失效。你正在解析的文件有什麼確切的問題?您能否展示一些文檔或錯誤消息的例子? –

回答

1

您可以使用SimpleXML並使用libxml_use_internal_errors(false);來禁用錯誤。如果SimpleXML不會使用您的字符串,我個人曾使用DOM來解析/修復以前的XML。

另一方面,爲什麼不在讀取它之前簡單地添加<?xml個字符?

+0

多數民衆贊成在我的想法,但不能肯定如果這將是最好的方式。另外我嘗試使用DOM,但無法讓它工作 – Yeak

0

你可以試試這個

<?php 
//invalid xml file 
$xmlfile = 'test.xml'; 
$xmlparser = xml_parser_create(); 

// open a file and read data 
$fp = fopen($xmlfile, 'r'); 
$xmldata = fread($fp, 4096); 

xml_parse_into_struct($xmlparser,$xmldata,$values); 

xml_parser_free($xmlparser); 
print_r($values); 
?>