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