0
我正在用PHP的xml解析器編寫xml到文本文件腳本。用@標記和數據分隔屬性符號,我注意到當我打開文本文件時,符號被視爲他們自己的數據。使用PHP xml解析器處理符號
i.e. <equation valid="yes">For this theorem assume X < Y and Z & A = 0</equation>
should have output @[email protected] |For this theorem assume X < Y and Z & A = 0|
but instead I have @[email protected] |For this theorem assume X| |<| |Y| and Z | |&| | A = 0|
所以我相信這是怎麼回事是,任何符號依賴於& [A-Z] +;或& [0-9] +;被視爲兩個標籤之間的不同數據。我試過preg_replace("/&([a-z]+);/","\1",$data)
和數字相同只是有字母/數字給我以後格式化,但這似乎沒有任何作用。如何讓XML解析器將這些符號識別爲數據的一部分?
編輯1:我剛纔也試過用\ &替換所有&,但那也沒有做任何事,我只是在我的數據分隔符之前得到反斜槓。
對,就是這個問題。我不認爲我解釋得很好,當php的xml解析器碰到'&'符號時,它認爲它在不同於以前的數據節點,我不確定我應該改變什麼, [AZ] +/[0-9] +;正則表達式不是一個新的數據節點。 – NorthGuard 2011-06-02 20:20:39
你在XML文檔中指定了什麼編碼? – 2011-06-02 20:34:09
我試過UTF-8和US-ASCII – NorthGuard 2011-06-02 20:44:37