我已閱讀的XML文件,並轉換成NSXMLDocument對象。但是,由於節點的字符串內容中存在「<」,因此它已被轉換爲「& lt」。所以,當我將它作爲xml文檔寫入文件時,它具有「& lt」字符。轉換&LT至<xml文檔
如何以「& lt」替換爲「<」作爲普通XML文件寫入文件。
感謝和問候, 列寧
我已閱讀的XML文件,並轉換成NSXMLDocument對象。但是,由於節點的字符串內容中存在「<」,因此它已被轉換爲「& lt」。所以,當我將它作爲xml文檔寫入文件時,它具有「& lt」字符。轉換&LT至<xml文檔
如何以「& lt」替換爲「<」作爲普通XML文件寫入文件。
感謝和問候, 列寧
當<
字符出現在文本節點中時,它會在您將xml寫入文件時序列化爲<
。
當您稍後閱讀的XML解析器,文件,文本節點將包含原始<
字符。
你也有CDATA編碼的文本節點的選項。在這種情況下,在CDATA塊內的序列化字符是<
。許多XML API不會保留CDATA和文本節點之間的任何區別。 CDATA應該被認爲是一種逃避機制,可以讓人類作者輕鬆編輯。
在XML的文本節點的<
應被表示爲<
。
如果要替換其寫入到XML文件之前,使用s/</</g
,這將導致當您從文件中讀取解析錯誤。
您可以使用下面的功能做了相反的操作
用htmlspecialchars和
ヶ輛()
時,它不是一個XML標籤的一部分<
字符必須進行轉義(see here)。你真的不應該破壞XML規範...
但是,如果必須,你可以寫你的XML文檔之前執行了一招:
<
實例是將不會被 轉換爲您的XML解析器(您知道的東西在文件的其他位置無處)。 類似*-lt-*
可能會做。<
字符替換您的實例*-lt-*
。再次,破壞XML規範是一個糟糕的主意......通過這樣做,沒有解析器將能夠讀取您的新XML文檔。
如果你想通過PHP更換& LT到< XML文檔中:
$xmlFile = file_get_contents("example.xml");
$xml= str_replace(['<','>'],['<','>'], $xmlFile);
echo $xml;
我從服務器通過XML獲得新聞提要,然後將其保存到另一個XML文件,我在歌廳結果與<
和>
所以我用這種方法。這不是存儲XML的最聰明的方式,但我也不是一個大型的高級後臺。
感謝您的支持。將檢查出來。 – boom 2010-03-08 05:30:54
嗨,我的代碼是在可可。你可以給其他方法來轉換它在可可,而不是htmlspecialchars和htmlentities() – boom 2010-03-08 05:34:21
@Lenin:對不起,我不知道cocao – Pavunkumar 2010-03-08 05:40:37