在php中使用解析python脚本中的XML

在php中使用解析python脚本中的XML,php,python,xml,Php,Python,Xml,我正在使用php中with的python脚本从c#服务器调用一些xml数据。当我通过simplexml\u load\u string来解析数据时。python脚本被调用用于一些不同的事情,但是它给了我一个调用 警告:simplexml_load_string():实体:第1行:解析器错误:StartTag:元素名称无效 我的PHP是: $output = exec("python Auth.py -M authenticate -p 17df30b0-37c1-4ebf-b45e-39353b

我正在使用php中with的python脚本从c#服务器调用一些xml数据。当我通过
simplexml\u load\u string
来解析数据时。python脚本被调用用于一些不同的事情,但是它给了我一个调用

警告:simplexml_load_string():实体:第1行:解析器错误:StartTag:元素名称无效

我的PHP是:

$output = exec("python Auth.py -M authenticate -p 17df30b0-37c1-4ebf-b45e-39353bd971a9 -P 5b9abe609e1ab31555562dd959fc050d");
$xml = simplexml_load_string($output, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
我的Python是:

params = urllib.urlencode(data);
conn = httplib.HTTPConnection("localhost", 8003);
conn.request("POST", path, params)
response = conn.getresponse()
print response.read();
我的XML是:

<?xml version="1.0"?>
<ServerResponse>
  <Result>Success</Result>
  <Token>25027fc3-e3c9-46a8-a1b7-5d217fecfe2c</Token>
</ServerResponse>

成功
25027fc3-e3c9-46a8-a1b7-5D217FeC2C
我可以从Ubuntu命令行很好地运行Python脚本,我将输出作为XML数据写入PHP文件,它在解析它时工作得很好


所以我不知道怎么了。有人能帮忙吗?

exec()
赋值给变量时,只捕获Python打印的最后一行。最后一行不足以创建带有
simplexml\u load\u string
的simplexmlement

相反,使用PHP的附加输出和返回变量将输出流传递到数组中。收到
$output
数组后,迭代该数组以构建XML字符串:

exec("python Auth.py -M authenticate -p 17df30b0-37c1-4ebf-b45e-39353bd971a9" .
     " -P 5b9abe609e1ab31555562dd959fc050d", $output, $return_var);

$strXML = '';    
foreach ($output as $line) {
    $strXML = $strXML . $line;
}

$xml = simplexml_load_string($strXML, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$array = json_decode($json,TRUE);

exec()
赋值给变量时,您只捕获Python打印的最后一行。最后一行不足以创建带有
simplexml\u load\u string
的simplexmlement

相反,使用PHP的附加输出和返回变量将输出流传递到数组中。收到
$output
数组后,迭代该数组以构建XML字符串:

exec("python Auth.py -M authenticate -p 17df30b0-37c1-4ebf-b45e-39353bd971a9" .
     " -P 5b9abe609e1ab31555562dd959fc050d", $output, $return_var);

$strXML = '';    
foreach ($output as $line) {
    $strXML = $strXML . $line;
}

$xml = simplexml_load_string($strXML, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$array = json_decode($json,TRUE);

请将xml与您的问题一起添加。您是否检查了
$output
的值?是的,var_dump'字符串(17)”,请将xml与您的问题一起添加。您是否检查了
$output
的值?是的,var_dump'字符串(17)”,谢谢您,它已修复了“simplexml_load_字符串”,但现在我很难获得“array[]''key:vaule'对于我的最后一条评论,我需要检查“result”和“result”谢谢,这已经修复了'simplexml_load_string',但是现在我很难获得'array[]''key:vaule'对于我的最后一条评论,我需要检查“result”和“result”