1
如何從返回的XML字符串中刪除多餘的引號?從XML中刪除非法字符
<Item Type="BO" Chan="12" " Inhibit="NO" " Manual="OFF" />
一般情況下我能得到的數據「BO」,「12」,「否」,「OFF」,但額外的引號與干涉這個過程。
是否有反正我可以刪除字符,但仍然獲得數據?
如何從返回的XML字符串中刪除多餘的引號?從XML中刪除非法字符
<Item Type="BO" Chan="12" " Inhibit="NO" " Manual="OFF" />
一般情況下我能得到的數據「BO」,「12」,「否」,「OFF」,但額外的引號與干涉這個過程。
是否有反正我可以刪除字符,但仍然獲得數據?
您畸形XML時聽起來是個不錯的工作爲Tidy XML repair parser:
$malformed_xml = '<Item Type="BO" Chan="12" " Inhibit="NO" " Manual="OFF" />';
$repaired_xml = tidy_repair_string($malformed_xml, ['input-xml' => 1]);
$xml = simplexml_load_string($repaired_xml);
foreach ($xml->attributes() as $key => $value) {
printf("%s: %s\n", $key, $value);
}
輸出:
Type: BO
Chan: 12
Inhibit: NO
Manual: OFF
一年後回來。非常感謝你! – tkav 2015-10-05 02:51:13
更重要的是,有沒有什麼辦法才能避免無效的XML擺在首位?它從何而來? – Marty 2014-10-10 00:53:23
(但是,如果你*絕對,絕對,100%不能糾正源*,你可以嘗試這樣的:http://regex101.com/r/jH9gL7/1)。 – Marty 2014-10-10 00:57:47
嗨@馬蒂,我不能改變收到的XML字符串。它來自設備。 – tkav 2014-10-10 00:58:10