Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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 为什么可以';simplexml是否读取我的xml文件?_Php_Xml_Zend Framework2 - Fatal编程技术网

Php 为什么可以';simplexml是否读取我的xml文件?

Php 为什么可以';simplexml是否读取我的xml文件?,php,xml,zend-framework2,Php,Xml,Zend Framework2,我尝试在zend FW2中读取xml文件,但xml reader不会从标记中同时读取属性和值,因此我尝试使用simplexml读取我的xml文件(这是我第一次编写xml文件)。xml文件是: <?xml version="1.0" encoding="UTF-8"?> <xs:mapping xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan

我尝试在zend FW2中读取xml文件,但xml reader不会从标记中同时读取属性和值,因此我尝试使用simplexml读取我的xml文件(这是我第一次编写xml文件)。xml文件是:

<?xml version="1.0" encoding="UTF-8"?>
<xs:mapping xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:IM-ENC="http://schemas.xmlsoap.org/soap/encoding/">
    <xs:serverSide xsi:type="IM-ENC:Array"></xs:serverSide>
    <xs:clientSide xsi:type="IM-ENC:Array">
        <item xsi:type="ns2:Map">
            <item>
                <key xsi:type="xs:string">key1</key>
                <value xsi:type="xs:string">value1</value>
            </item>
            <item>
                <key xsi:type="xs:string">key2</key>
                <value xsi:type="xs:string">value2</value>
            </item>
        </item>
    </xs:clientSide>
</xs:mapping>

关键1
价值1
键2
价值2
以这种方式读取文件:

<?php
$xml=simplexml_load_file(my.xml);
print_r($xml);

请启用错误报告并粘贴您收到的消息。此外,按照Shankar的建议,将文件名封装在单引号中:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$xml=simplexml_load_file('my.xml'); // note the quotes
print_r($xml);

找到它,xml文件中的错误正如我所想,应该是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<xs:mapping xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:IM-ENC="http://schemas.xmlsoap.org/soap/encoding/">
    <serverSide xsi:type="IM-ENC:Array"></serverSide>
    <clientSide xsi:type="IM-ENC:Array">
        <item xsi:type="ns2:Map">
            <item>
                <key xsi:type="xs:string">key1</key>
                <value xsi:type="xs:string">value1</value>
            </item>
            <item>
                <key xsi:type="xs:string">key2</key>
                <value xsi:type="xs:string">value2</value>
            </item>
        </item>
    </clientSide>
</xs:mapping>

关键1
价值1
键2
价值2
如您所见,我刚刚从标记名(xs名称空间)中删除了名称空间。事实上,我找不到一个解释,但它对我起了作用。 如果有人解释为什么,请与我们分享。
谢谢大家的帮助。

用单引号括起
my.xml
。像这样<代码>$xml=simplexml\u加载文件('my.xml')感谢您的回复,我尝试了此操作,但仍然有空对象。请按照我的回答中的建议启用错误,并使用将出现的消息更新您的问题。谢谢。。尝试了您的答案,但回答仍然是“object(simplexmlement)#225(0){}”:(即使您从
simplexmlement
查看
print\r
的输出,并且它看起来是空的,simplexmlement也不是空的。只是
print\r
var\u dump
不适合Simplexmlement。请改用
asXML()
SimpleXMLElement的方法,只输出XML。然后您会发现它根本不是空的。感谢您的快速响应,我已经尝试过了,我得到的结果是:“object(SimpleXMLElement)#225(0){”这是导出的结果,加载很好。您正在加载xml方案文件。您试图完成什么?整个想法是将键标记与值标记映射,这就是为什么我必须加载它并通过xml阅读器读取它。谢谢@Shankar Damodaran