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 xpath函数获取根_Php_Xml_Xpath - Fatal编程技术网

Php 如何使用simplexml xpath函数获取根

Php 如何使用simplexml xpath函数获取根,php,xml,xpath,Php,Xml,Xpath,我试图获取simpleXml元素的根节点,但它找不到任何内容。这是我的代码示例: $xml = <<<XML <Order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:///C:/LSP%20iShip/LSP%20Dossiers/Standard%20iShip%20Mappings/iShip%20XSD's/iOrder.xsd"

我试图获取simpleXml元素的根节点,但它找不到任何内容。这是我的代码示例:

$xml = <<<XML
<Order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:///C:/LSP%20iShip/LSP%20Dossiers/Standard%20iShip%20Mappings/iShip%20XSD's/iOrder.xsd">
    <Reference>21EW400084SA</Reference>
    <Name>John</Name>
    <Street1>Ally 3</Street1>
    <Zipcode>0</Zipcode>
    <City>ESPANA</City>
    <CountryCode>ES</CountryCode>
</Order>
XML;

$simpleXML = simplexml_load_string($xml);

var_dump($simpleXML->xpath('/'));

主程序中的xpath查询是一个变量输入。它可以是根,也可以是指向子对象的路径。当变量输入为“/”时,它不返回任何内容(如上面的示例所示)。如何使其返回根节点?

xpath查询
/
不会返回任何内容,因为它是一个空搜索。前导的
/
表示查询从根开始,但它仍然需要一些东西来搜索。我怀疑您想尝试
$simpleXML->xpath('/Order')
$simpleXML->xpath('/*')

正确的xpath表达式是
/*

var_dump($simpleXML->xpath('/*'));
或者,对于
simplexmlement
对象:

var_dump($simpleXML->xpath('/*')[0]);

在这个特定的例子中,我相信Marco想要xpath表达式
/Order
,它将返回根元素。是的,我假设我的答案中的
对象
顺序
的输入错误。现在修好了
var_dump($simpleXML->xpath('/*')[0]);