这让我疯狂。我可以复制和粘贴我需要的30分钟前完成的2个值,但是我试图做到“正确”。Simplexml PHP - 获取“深层节点”的值
整个文件中只有一个“用户名”。我如何得到它?我尝试使用xpath($username=$xml->xpath('default_setup/connection/username');
),并试图链接节点($ username = $ xml - > {... full path here ...} - > default_setup-> connection-> username;`)。
当我print_r($xml)
,我可以看到我想要的所有节点及其值。当我print_r($username)
我什么都没得到。
<?php
$xml = simplexml_load_file('database.xml',NULL,LIBXML_NOCDATA); // connection details are inside of CDATA
$username=$xml->xpath('default_setup/connection/username'); ?>
<p>Username: <?= (string)$username ?></p><?php // outputs "Array"
<?php
foreach($xml as $element) {
echo $element . '<br />'; // outputs '<br />' 2 times.
}
?>
<pre>
Username:
<?php print_r($username) ?><?php // nothing ?>
xml:
<?php print_r($xml) ?><?php // full set of all nodes with everything I need just out of reach ?>
</pre>
这里是示例xml。 (它实际上是Magento“app/etc/local.xml”文件)
<default_setup>
<connection>
<host><![CDATA[localhost]]></host>
<username><![CDATA[secret_username]]></username>
<password><![CDATA[secret_password]]></password>
<dbname><![CDATA[testing_database]]></dbname>
<initStatements><![CDATA[SET NAMES utf8]]></initStatements>
<model><![CDATA[mysql4]]></model>
<type><![CDATA[pdo_mysql]]></type>
<pdoType><![CDATA[]]></pdoType>
<active>1</active>
</connection>
</default_setup>
你对这个特殊的问题示例XML?以便我们知道它是什么样子? – Ghost 2014-11-25 02:37:38
@Ghost好的我添加了路径的最后一部分。 ( 'default_setup /连接/用户名')。 – 2014-11-25 02:49:37