我有一个Web应用程序,一个人将Datamatrix条形码扫描到一个表单中,然后通过post传递给该进程的下一部分。我无法控制条形码中包含的xml,因此只能在那里使用。 我无法将XML加载到simple_xml_loadstring:
以下是从条形码扫描的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>
这是我在接受表格中的POST的页面上的代码:
//get XML from previous form field
$searchTerm = $_REQUEST['ScanItem'];
$xml = simplexml_load_string($searchTerm);
if ($xml === false) {
echo "Failed loading XML: ";
foreach(libxml_get_errors() as $error) {
echo "<br>", $error->message;
}
} else {
print_r($xml);
}
我也尝试过使用:
$xml = file_get_contents('php://input');
$decodedXML = urldecode($xml);
然后尝试回显$ decodingXML但是在ScanItem =
之后没有显示任何内容真的很令人沮丧。
欢迎任何建议。
由于
答案 0 :(得分:0)
您在寻找价值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]);
?>