我以前没有真正使用过xml文件,但现在我正在尝试将xml文件放入php数组或对象中。 xml文件如下所示:(它用于翻译Web应用程序)
<?xml version="1.0" ?>
<content language="de">
<string name="login">Login</string>
<string name="username">Benutzername</string>
<string name="password">Passwort</string>
</content>
我尝试了以下内容:
$xml = new SimpleXMLElement("de.xml", 0, 1);
print_r($xml);
不幸的是,'name'属性的值由于某种原因不在php对象中。我正在寻找一种允许我通过name属性检索xml值的方法。
例如:
$xml['username'] //returns "Benutzername"
怎么办呢? 感谢你的帮助:)干杯!
答案 0 :(得分:0)
$xmlStr = <<<XML
<?xml version="1.0" ?>
<content language="de">
<string name="login">Login</string>
<string name="username">Benutzername</string>
<string name="password">Passwort</string>
</content>
XML;
$doc = new DomDocument();
$doc->loadXML($xmlStr);
$strings = $doc->getElementsByTagName('string');
foreach ($strings as $node) {
echo $node->getAttribute('name') . ' = ' . $node->nodeValue . PHP_EOL;
}
答案 1 :(得分:0)
这个应该向你解释这个功能:
<?php
$xml = simplexml_load_file('de.xml');
foreach($xml->string as $string) {
echo 'attributes: '. $string->attributes() .'<br />';
}
?>
attributes()
课程中的SimpleXMLElement
方法可以帮助您 - http://de.php.net/manual/en/simplexmlelement.attributes.php
答案 2 :(得分:0)
您可以使用xpath表达式获取具有您要查找的名称的元素:
(string)current($xml->xpath('/content/string[@name="username"]'))