从XML中删除非法字符

时间:2014-10-10 00:50:51

标签: php xml

如何从返回的XML字符串中删除多余的引号?

<Item Type="BO" Chan="12" " Inhibit="NO" " Manual="OFF" />

通常情况下,我可以获取数据&#34; BO&#34;,&#34; 12&#34;,&#34; NO&#34;,&#34; OFF&#34;,但额外的引号会干扰这个过程。

无论如何我可以删除字符,但仍然可以获取数据吗?

1 个答案:

答案 0 :(得分:1)

您的格式错误的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