【发布时间】:2012-09-30 11:02:10
【问题描述】:
抱歉,如果有一个明显的答案(我知道有大约 1000 个类似的问题) - 但我花了两天时间试图解决这个问题,但没有成功。我似乎无法破解为什么我得到一个空响应......
短背景:以下工作正常
$xurl= new SimpleXMLElement('https://gptxsw.appspot.com/view/submissionList?formId=GP_v7&numEntries=1', NULL, TRUE);
$keyname = $xurl->idList->id[0];
echo $keyname;
这提供了一个响应:一个唯一的键,如 uuid:d0721391-6953-4d0b-b981-26e38f05d2e5
但是我尝试了一个类似的请求(最终将基于第一个请求)并失败了。我将代码简化如下...
$xdurl= new SimpleXMLElement('https://gptxsw.appspot.com/view/downloadSubmission?formId=GP_v7[@version=null%20and%20@uiVersion=null]/GP_v7[@key=uuid:d0721391-6953-4d0b-b981-26e38f05d2e5]', NULL, TRUE);
$keyname2 = $xdurl->data->GP_v7->SDD_ID_N[0];
echo $keyname2;
这提供了空值。如果我尝试类似 回声 $xdurl->asXML(); 我从网站(不是来自 PHP)收到错误响应。
我是否需要从 SimpleXMLElement 中弹出第二个请求?我已经阅读了有关使用 XPath 和定义命名空间的信息,但我不确定是否需要:第二个文件确实有两个命名空间,但其中一个未使用,另一个没有元素前缀。另外,我已经尝试了这些变体 - 足以认为我的问题/错误本质上是更具全球性的(或由于缺乏经验而导致的疏忽)。
出于此请求的目的,我无法控制任一 XML 文件的格式。
【问题讨论】:
-
你不能使用
simplexml_load_file()有什么原因吗? -
尝试等效的加载命令会产生相同的错误 - 它会加载第一个示例,但会失败第二个示例(标题中有或没有空格)
标签: php xml parsing simplexml special-characters