在php中解析xml数据返回空值
我试图用php中的simple_load_string函数解析xml中的数据,它在$parsed data parsed中返回一个空数据 要分析的数据如下所示:在php中解析xml数据返回空值,php,xml,xml-parsing,Php,Xml,Xml Parsing,我试图用php中的simple_load_string函数解析xml中的数据,它在$parsed data parsed中返回一个空数据 要分析的数据如下所示: <cas:serviceResponse xmlns:cas="http://www.yale.edu/tp/cas"> <cas:authenticationSuccess> <cas:user>yassine458</cas:user> </cas
<cas:serviceResponse xmlns:cas="http://www.yale.edu/tp/cas">
<cas:authenticationSuccess>
<cas:user>yassine458</cas:user>
</cas:authenticationSuccess>
</cas:serviceResponse>
我正在尝试将其转换为json格式
$xml_string = file_get_contents('/path');
$xml = simplexml_load_string($xml_string);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
然后您可以根据需要使用$json或$array。我发现这个解决方案:
$todelete="xmlns:cas=\"http://www.yale.edu/tp/cas\"";
$result="<cas:serviceResponse xmlns:cas=\"http://www.yale.edu/tp/cas\">
<cas:authenticationSuccess>
<cas:user>pdurant2</cas:user>
</cas:authenticationSuccess>
</cas:serviceResponse>";
if (strpos($result, $todelete) !== false) {
$result= str_replace($todelete,null,$result);
}
if (strpos($result, "cas:") !== false) {
$result= str_replace("cas:",null,$result);
}
if (strpos($result, "/cas:") !== false) {
$result= str_replace("/cas:",null,$result);
}
$parsed=simplexml_load_string($result);
这对我来说很有用。当我使用xml时,我面临着同样的问题,但我找到了这个解决方案,它对我很有用 文件:- 或 使用 结果:- 如果您不需要cas:只需将其替换为xml格式
Tested向我们展示代码和数据您可以看看是否有解决方案?这是无效的XML,因此很难说更多,因为我无法测试iti,我可以得到没有解析它的解决方案?如何获得变量cas:user?正如您所见,我已经展示了如何访问属性,它只是一个数组use as arrayXML2Array在我尝试编写代码时未找到。您必须复制此代码并创建一个名为XML2Array.php的文件,然后包含此文件,它将工作并更新,请查看或发送[
$todelete="xmlns:cas=\"http://www.yale.edu/tp/cas\"";
$result="<cas:serviceResponse xmlns:cas=\"http://www.yale.edu/tp/cas\">
<cas:authenticationSuccess>
<cas:user>pdurant2</cas:user>
</cas:authenticationSuccess>
</cas:serviceResponse>";
if (strpos($result, $todelete) !== false) {
$result= str_replace($todelete,null,$result);
}
if (strpos($result, "cas:") !== false) {
$result= str_replace("cas:",null,$result);
}
if (strpos($result, "/cas:") !== false) {
$result= str_replace("/cas:",null,$result);
}
$parsed=simplexml_load_string($result);
$xml = '<cas:serviceResponse xmlns:cas="http://www.yale.edu/tp/cas">
<cas:authenticationSuccess>
<cas:user>yassine458</cas:user>
</cas:authenticationSuccess>
</cas:serviceResponse>';
$xml2array = XML2Array::createArray($xml);
echo "<pre>";
print_r($xml2array);
echo "<pre>";
echo $xml2array['cas:serviceResponse']['cas:authenticationSuccess']['cas:user'];
Array
(
[cas:serviceResponse] => Array
(
[cas:authenticationSuccess] => Array
(
[cas:user] => yassine458
)
)
)