-1
我从NLM(国家医学图书馆)提取一些药物数据。我试图把它转换的结果是一个XML字符串:simplexml_load_string()不返回任何元素
<SpellAid>
<Chemical>
<Name>Albuterol</Name>
<CAS>18559-94-9</CAS>
</Chemical>
<Chemical>
<Name>Albuterol [USAN]</Name>
<CAS>18559-94-9</CAS>
</Chemical>
<Chemical>
<Name>dl-Albuterol</Name>
<CAS>18559-94-9</CAS>
</Chemical>
</SpellAid>
当我这样做:
exit(var_dump(simplexml_load_string($response)->children()));
我得到:
object(SimpleXMLElement)#75 (0) { }
做
exit(var_dump(simplexml_load_string($response)));
得到我
object(SimpleXMLElement)#56 (0) { }
我在这里做错了什么?我想我可能需要utf8_encode xml,没有骰子。 Simplexml_load_string也很好,可以预先配置正确的xml DTD。
任何帮助将不胜感激。另外,为了参考,我试图引用来自以下的儿童:
$response->children()->SpellAid;
$response->children()->SpellAid[0];
$response->children()->Chemical;
$ response-> Chemical不作为数组返回。 $ response-> SpellAid实际上是一个simplexml元素,但是 - > Chemical成员是NULL。
至于我可以告诉$响应 - >化学没有被作为一个数组返回,但作为一个元素。试图迭代它不起作用,循环从不输入。 $ response-> SpellAid实际上是一个simplexml元素,所以我认为$ response-> SpellAid-> Chemical会起作用,但是它给了我NULL。 – TheMonarch
此外,一旦事情没有按照我预期的方式工作,代码排序的美感就会下降。 – TheMonarch
那么我复制你的代码,而不是重写,它的工作。我真的不知道我做错了什么。感谢您的帮助,我想。 – TheMonarch