Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';t读取带有simplexml\u load\u字符串的XML文件_Php_Xml_Xml Parsing_Simplexml - Fatal编程技术网

Php Can';t读取带有simplexml\u load\u字符串的XML文件

Php Can';t读取带有simplexml\u load\u字符串的XML文件,php,xml,xml-parsing,simplexml,Php,Xml,Xml Parsing,Simplexml,我一直试图读取xml文件,但它给了我一个奇怪的错误。 我的XML如下 <?xml version='1.0' encoding='UTF-8'?> <response> <url>http://xyz.com</url> <token>xxxxxxx<token> </response> 但它给了我这个错误 警告:simplexml加载字符串()[函数.simplexml加载字符串]: 实体:第

我一直试图读取xml文件,但它给了我一个奇怪的错误。 我的XML如下

<?xml version='1.0' encoding='UTF-8'?>
<response>
    <url>http://xyz.com</url>
    <token>xxxxxxx<token>
</response>
但它给了我这个错误

警告:simplexml加载字符串()[函数.simplexml加载字符串]:
实体:第1行:解析器错误:需要开始标记,“从API得到的响应格式不正确/XML无效:

<token>xxxxxxx<token>
              ^ missing /
这将通过首先修复未关闭的标记,然后删除空的
标记
元素来生成以下XML:

<?xml version="1.0" encoding="utf-8"?>
<response>
<url>http://xyz.com</url>
<token>xxxxxxx
</token>
</response>

http://xyz.com
xxxxxxx
相关的:


您从API得到的响应不是格式良好/有效的XML:

<token>xxxxxxx<token>
              ^ missing /
这将通过首先修复未关闭的标记,然后删除空的
标记
元素来生成以下XML:

<?xml version="1.0" encoding="utf-8"?>
<response>
<url>http://xyz.com</url>
<token>xxxxxxx
</token>
</response>

http://xyz.com
xxxxxxx
相关的:


    • 谢谢大家的关注和回复, 但问题出在别的地方 在我的curl请求中,我没有将CURLOPT_RETURNTRANSFER设置为true,这导致XML没有被记录在变量中,并且不知何故被打印在屏幕上,给人一种错觉,认为它来自变量,但事实并非如此。 然而,我将CURLOPT_RETURNTRANSFER设置为1,它现在给了我正确的结果。 为这个愚蠢的错误感到抱歉。
      谢谢大家的关注和回复, 但问题出在别的地方 在我的curl请求中,我没有将CURLOPT_RETURNTRANSFER设置为true,这导致XML没有被记录在变量中,并且不知何故被打印在屏幕上,给人一种错觉,认为它来自变量,但事实并非如此。 然而,我将CURLOPT_RETURNTRANSFER设置为1,它现在给了我正确的结果。 为这个愚蠢的错误感到抱歉。
      正如您正确指出的,将CURLOPT_RETURNTRANSFER设置为1非常重要

      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $postUrl);
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_HEADER, 0 ); // set to 1 for debugging
      curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return from sms server
      

      正如您正确指出的,CULLOPT_RETURNTRANSFER设置为1非常重要

      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $postUrl);
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_HEADER, 0 ); // set to 1 for debugging
      curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return from sms server
      

      您使用什么编码来保存xml文件?或者XML保存在变量中?此外,此
      xxxxxxx
      不是格式良好的xml。codepad.org上也有相同的错误:缺少斜杠!我没有将文件保存在这里。我从API获取此xml作为响应。我的页面编码是,文档类型是我不明白的。斜杠缺失在哪里?@hakre关于
      simplexml\u load\u string()
      ?。。。了解源字符串是找出实际问题(BOM或其他)所必需的。您使用什么编码来保存xml文件?或者XML保存在变量中?此外,此
      xxxxxxx
      不是格式良好的xml。codepad.org上也有相同的错误:缺少斜杠!我没有将文件保存在这里。我从API获取此xml作为响应。我的页面编码是,文档类型是我不明白的。斜杠缺失在哪里?@hakre关于
      simplexml\u load\u string()
      ?。。。了解源字符串是找出实际问题、BOM或其他问题所必需的。这总是简单的事情。>。事情总是很简单的。