謝謝大家的幫助(特別是IMSoP,你對htmlspecialchars是正確的)。
我一直不成功的原因是因爲我強化了人看不懂手冊的刻板印象。
我只需花5分鐘看例子@http://php.net/manual/en/simplexml.examples-basic.php。它也解釋了爲什麼你不應該使用json_encode/decode。
對於其他文藝青年最愛的人,這裏是我現在使用的代碼的一些例子:
當我有XML,看起來像這樣:
<configuration>
<setup-config>
<account-name>Trump</account-name>
</setup-config>
<configuration>
↴
$xml = simplexml_load_file('http://localhost/config.xml');
echo $xml->{'configuration'}->{'setup-config'}->{'account-name'};
當我看到像這樣的XML是:
<configuration>
<setup-config>
<user-info country-code="826"/>
</setup-config>
<configuration>
↴
$xml = simplexml_load_file('http://localhost/config.xml');
echo $xml->{'configuration'}->{'setup-config'}->{'user-info'}['country-code'];
當我有XML和HTML字符:
<configuration>
<defaults-config>
<def-notification name="<ADMIN>"/>
</defaults-config>
</configuration>
↴
$xml = simplexml_load_file('http://localhost/config.xml');
echo htmlspecialchars($xml->{'configuration'}->{'defaults-config'}->{'def-notification'}['name']);
迭代:
<configuration>
<roles-config>
<group-role role="administrator" name="Administrators" from="."/>
<group-role role="backup-operator" name="Backup Operators" from="."/>
</roles-config>
</configuration>
↴
$xml = simplexml_load_file('http://localhost/config.xml');
foreach ($xml->{'configuration'}->{'roles-config'}->{'group-role'} as $grouproles => $groles) {
echo "<tr><td>group role name: ".$groles['name']."</td></tr>";
echo "<tr><td>group role role: ".$groles['role']."</td></tr>";
echo "<tr><td>group role role: ".$groles['from']."</td></tr>";
}
簡單的存在性檢查:
<configuration>
<setup-config>
<account-name>Trump</account-name>
</setup-config>
<configuration>
↴
$xml = simplexml_load_file('http://localhost/config.xml');
if(isset($xml->{'configuration'}->{'setup-config'}->{'account-name'})){
echo $xml->{'configuration'}->{'setup-config'}->{'account-name'};
}
或整個'<ADMIN>' –
$ XML->兒童()[0] - >屬性()[ '收件人'] – Andreas
$ xml_string->兒童()[0 ] - > attributes()['recipient']顯示爲空白。如果我在Firefox中使用Inspect Element,我可以看到' '。 –