【发布时间】:2019-12-04 06:02:15
【问题描述】:
我有一个字符串格式的有效 xml 代码。我想将字符串转换为 XML 对象。
$string = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<d:multistatus xmlns:d="DAV:" xmlns:nc="http://example.com" xmlns:oc="http://example.com" xmlns:s="http://example.com">
<d:response>
<d:href>/remote.php/dav/files/test3.txt</d:href>
<d:propstat>
<d:prop>
<d:getlastmodified>Tue, 03 Dec 2019 12:42:33 GMT</d:getlastmodified>
<d:resourcetype>
<d:collection />
</d:resourcetype>
<d:quota-used-bytes>1942356098</d:quota-used-bytes>
<d:quota-available-bytes>-3</d:quota-available-bytes>
<d:getetag>"5de6583924a4b"</d:getetag>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
</d:response>
<d:response>
<d:href>/remote.php/dav/files/test2.txt</d:href>
<d:propstat>
<d:prop>
<d:getlastmodified>Thu, 21 Nov 2019 11:30:59 GMT</d:getlastmodified>
<d:resourcetype>
<d:collection />
</d:resourcetype>
<d:quota-used-bytes>130</d:quota-used-bytes>
<d:quota-available-bytes>-3</d:quota-available-bytes>
<d:getetag>"5dd675741bdcb"</d:getetag>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
<d:propstat>
<d:prop>
<d:getcontentlength />
<d:getcontenttype />
</d:prop>
<d:status>HTTP/1.1 404 Not Found</d:status>
</d:propstat>
</d:response>
<d:response>
<d:href>/remote.php/dav/files/test.txt</d:href>
<d:propstat>
<d:prop>
<d:getlastmodified>Wed, 27 Nov 2019 10:47:45 GMT</d:getlastmodified>
<d:getcontentlength>1942355968</d:getcontentlength>
<d:resourcetype />
<d:getetag>"aa05cb48be85a3c306421807c2467acf"</d:getetag>
<d:getcontenttype>application/octet-stream</d:getcontenttype>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
<d:propstat>
<d:prop>
<d:quota-used-bytes />
<d:quota-available-bytes />
</d:prop>
<d:status>HTTP/1.1 404 Not Found</d:status>
</d:propstat>
</d:response>
<d:response>
<d:href>/remote.php/dav/files/openSUSE-Leap-42.3-DVD-x86_64.iso/</d:href>
<d:propstat>
<d:prop>
<d:getlastmodified>Wed, 27 Nov 2019 10:31:51 GMT</d:getlastmodified>
<d:resourcetype>
<d:collection />
</d:resourcetype>
<d:quota-used-bytes>0</d:quota-used-bytes>
<d:quota-available-bytes>-3</d:quota-available-bytes>
<d:getetag>"5de6309233431"</d:getetag>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
<d:propstat>
<d:prop>
<d:getcontentlength />
<d:getcontenttype />
</d:prop>
<d:status>HTTP/1.1 404 Not Found</d:status>
</d:propstat>
</d:response>
</d:multistatus>
XML;
$xml = simplexml_load_string($string);
var_dump($xml);
输出:
object(SimpleXMLElement)#1 (0) {
}
我不明白为什么我的结果是空白的。
【问题讨论】:
-
这种行为是意料之中的——它更多的是
var_dump()的限制而不是SimpleXML——stackoverflow.com/questions/16119597/…