2010-09-26 47 views
4

用PHP修復格式錯誤的XML文件的最佳做法是什麼?例如CDATA部分包含非法字符。用正則表達式?或者執行一些Linux命令行工具?如何修復畸形的XML?

+0

這個問題是相當模糊的* *,也許你應該在深度指定那種你必須處理畸形文件。 XML的範圍非常廣泛,所以一般的解決方案並不可行。 – ZJR 2010-09-26 08:52:23

+0

XML解析器非常嚴格,某些預處理有時可能會緩解這種情況,但要獲得答案,您需要提供更多詳細信息。一個值得懷疑的猜測:用** XML **你真的可以指** XHTML **嗎? – ZJR 2010-09-26 08:55:26

+0

「有正則表達式嗎?」當然不是。請參閱http://stackoverflow.com/questions/701166/can-you-provide-some-examples-of-why-it-is-hard-to-parse-xml-and-html-with-a-rege – delnan 2010-09-26 09:08:21

回答

6

Tidy

整潔是對HTML整潔結合 清理和修復工具,它允許您 不僅乾淨,否則 操作HTML文檔,也 遍歷文檔樹。

// Specify configuration 
$config = array(
      'indent'  => true, 
      'input-xml' => true, 
      'output-xml' => true, 
      'wrap'  => false); 
// Tidy 
$tidy = new tidy; 
$tidy->parseFile('sample.xml', $config); 
$tidy->cleanRepair(); 
// Output 
echo $tidy; 
+0

感謝的Mads,正好我需要:) – Ain 2010-09-26 11:32:12

+0

這是完美的。但我需要將修復的字符串保存到文件中。我試過'file_put_contents(「new.xml」,$ tidy)',但是new.xml文件沒有創建內容。 – vidhya 2015-01-02 08:39:40