2011-03-31 70 views
0

當我解析XML文件時,系統會自動爲各個字段生成一些<none>標籤...但是,沒有</none>標籤。 所以,我的XML解析器給出了錯誤,並且不解析整個文件。< none >標籤 - 使用PHP解析XML

我該如何擺脫這個錯誤?

$xml = simplexml_load_file($newfile3); 

<none>不是一個標籤......所以,我只是想忽略這個或別的東西,如「無」替換...

+2

如果您修復無效的XML,那麼你就不必來了用黑客來解析無效的XML。 – drudge 2011-03-31 21:28:26

回答

0
$newfile3 = str_replace('<none>', '&lt;none&gt;', $newfile3); 

基本上替換壞「標籤」與這兩個元字符被編碼成實體。

+0

我仍然收到相同的錯誤...我檢查了newfile3,它仍然有< none >標籤... – Zac 2011-03-31 20:41:53

+1

您在這裏輸入了括號內 none /之前的空格。如果這真的存在於xml中,則必須在str_replace調用中輸入完全匹配。 – 2011-03-31 21:28:30

+0

不,這不是!如果我在標籤內輸入NONE,本網站的編輯器不會顯示任何內容! – Zac 2011-03-31 21:47:37

0

扎克,你應該首先加載該文件,然後使用代碼從馬克·乙

$string = str_replace('<none>', 'your_replacement', file_get_contents($newfile3)); 
$xml = simplexml_load_string($string); 

這應該做的伎倆

+0

再一次的錯誤是「開放和結束標籤不匹配:無」......我不知道如何解決這個問題!也許它不讀作爲一個字符串??! – Zac 2011-03-31 21:00:02

+1

然後,也許你應該發佈你的文件(pastebin.com是一個完美的地方),所以我們可以看看... – xiffy 2011-03-31 21:20:41

+0

看着你與這個問題有關的其他問題[鏈接](http://stackoverflow.com/q/ 5495543/209012)我想Marc是對的;在'<'和'none'之間有空格,所以拿我的代碼並輸入需要替換的內容; '< none >'而不是'' – xiffy 2011-03-31 21:43:12