用PHP解析格式错误的XML

用PHP解析格式错误的XML,php,xml,Php,Xml,我有一个web应用程序,一个人将Datamatrix条形码扫描成一个表单,然后通过post传递到流程的下一部分。我无法控制条形码中包含的xml,因此只能处理条形码中的内容。 我无法将XML加载到简单的\u XML\u加载字符串中: 以下是从条形码扫描的xml示例: <xml><sc id="12345" ft="HS21" t="2016-08-31"/><pa l="MySurname" m="B" f="MyFirstName" s="Mr" h="123456

我有一个web应用程序,一个人将Datamatrix条形码扫描成一个表单,然后通过post传递到流程的下一部分。我无法控制条形码中包含的xml,因此只能处理条形码中的内容。 我无法将XML加载到简单的\u XML\u加载字符串中:

以下是从条形码扫描的xml示例:

<xml><sc id="12345" ft="HS21" t="2016-08-31"/><pa l="MySurname" m="B" f="MyFirstName" s="Mr" h="1234567436" b="1995-03-23" x="2" a="97 the Town Road,Nowhere,My City" pc="RA 13762"/><pb i="4204" d="My Name" n="My Business " pi="Z008287783" a="Station Road,My Town, County, LAX 12344,028 45 67 89" pc=""/><dd d="Name of suff" q="120" sq="213325435436436" do="Directions" dm="425984002" u="80"/></xml>
然后尝试回显$decodedXML,但在ScanItem之后没有显示任何内容=

真令人沮丧

欢迎任何建议


谢谢

您是否在寻找价值12345? 那就给你

<?php
$xml_string = '<xml><sc id="12345" ft="HS21" t="2016-08-31"/><pa l="MySurname" m="B" f="MyFirstName" s="Mr" h="1234567436" b="1995-03-23" x="2" a="97 the Town Road,Nowhere,My City" pc="RA 13762"/><pb i="4204" d="My Name" n="My Business " pi="Z008287783" a="Station Road,My Town, County, LAX 12344,028 45 67 89" pc=""/><dd d="Name of suff" q="120" sq="213325435436436" do="Directions" dm="425984002" u="80"/></xml>';
$xml = simplexml_load_string($xml_string);
$xml_id_to_sring = $xml->sc->attributes()->{'id'};
$json = json_decode(json_encode((array)$xml_id_to_sring));
print_r($json[0]);
?>
sc->attributes()->{'id'};
$json=json_解码(json_编码((数组)$xml_id_to_sring));
打印($json[0]);
?>

你在找什么?关于您需要什么建议。?在什么方面XML格式不正确-在我看来没问题。。。丑陋但技术上没有错误我需要第一个元素的id。我知道,就XML而言,它看起来太糟糕了,但它只是无法加载到simplexml\u load\u字符串中。您的XML示例格式良好,simplexml\u load\u字符串可以毫无怨言地解析它。最有可能的是
$\u请求['ScanItem']
不包含您期望的内容,因此首先要验证它。使用SimpleXML解析XML似乎很好-您有没有不解析的示例?看见
$xml = file_get_contents('php://input');
        $decodedXML = urldecode($xml);
<?php
$xml_string = '<xml><sc id="12345" ft="HS21" t="2016-08-31"/><pa l="MySurname" m="B" f="MyFirstName" s="Mr" h="1234567436" b="1995-03-23" x="2" a="97 the Town Road,Nowhere,My City" pc="RA 13762"/><pb i="4204" d="My Name" n="My Business " pi="Z008287783" a="Station Road,My Town, County, LAX 12344,028 45 67 89" pc=""/><dd d="Name of suff" q="120" sq="213325435436436" do="Directions" dm="425984002" u="80"/></xml>';
$xml = simplexml_load_string($xml_string);
$xml_id_to_sring = $xml->sc->attributes()->{'id'};
$json = json_decode(json_encode((array)$xml_id_to_sring));
print_r($json[0]);
?>