Simplexml_load_string无法将我的字符串加载到XML中

时间:2013-10-25 16:44:57

标签: php xml simplexml

我在php中有这个字符串,我认为这个字符串已经格式化为xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Books>
<ID>1</ID>
<Title>Programming 1</Title>
<ISBN>1234567890001</ISBN>
<Author>Kevin</Author>
<Abstract>This Book is about programming</Abstract>
</Books>

所以我使用simplexml_load_string()函数将此字符串转换为xml,但事实上它从来没有作为xml返回,所以每次我执行print_r()时,我都会这样:

  

SimpleXMLElement Object()

我认为它应该像往常一样包含所有树和节点,但返回的对象始终为null。我已经尝试了其他几种方法。但是所有这些都会给出相同的结果,即空白的XML对象。
那么我的字符串格式有问题吗?或者我的代码可能有问题。这是我的代码:

<?php

$ISBN=$_POST["ISBN"];
$url='http://localhost:8080/Programming/services/hello_world/DatabaseSearch?ISBN='.$ISBN;
$xmlstr = file_get_contents($url);
echo $xmlstr;
$xml=simplexml_load_string($xmlstr);
echo $xml->Books->Title;
print_r($xml);
?>

  

echo $ xml-&gt; Books-&gt; Title;

仅返回null值。所以我不知道究竟出了什么问题,我已经试图解决这个问题几天但没有结果。请帮帮我..

1 个答案:

答案 0 :(得分:0)

您可以按echo $xml->Title;

获取标题

实际上$xml=simplexml_load_string($xmlstr);会返回根节点

您在xml中也没有其他节点,因此您可以获得标题echo $xml->Title;

有关详细信息,请参阅SimpleXML and print_r() - why is this empty?