這讓我瘋狂。我可以複製和粘貼我需要的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