XML文件到PHP数组(带属性)

XML文件到PHP数组(带属性),php,xml,object,Php,Xml,Object,我以前没有真正使用过xml文件,但现在我正在尝试将xml文件放入php数组或对象中。 xml文件如下所示:(用于翻译web应用程序) 不幸的是,“name”属性的值由于某种原因不在php对象中。我正在寻找一种允许我通过name属性检索xml值的方法 例如: $xml['username'] //returns "Benutzername" 如何做到这一点? 谢谢你的帮助:)干杯 $xmlStr=getAttribute('name')。='$节点->节点值。PHP_EOL; } 这一个应该向您

我以前没有真正使用过xml文件,但现在我正在尝试将xml文件放入php数组或对象中。 xml文件如下所示:(用于翻译web应用程序)

不幸的是,“name”属性的值由于某种原因不在php对象中。我正在寻找一种允许我通过name属性检索xml值的方法

例如:

$xml['username'] //returns "Benutzername"
如何做到这一点? 谢谢你的帮助:)干杯

$xmlStr=getAttribute('name')。='$节点->节点值。PHP_EOL;
}

这一个应该向您解释功能:

<?php
$xml = simplexml_load_file('de.xml');

foreach($xml->string as $string) { 
  echo 'attributes: '. $string->attributes() .'<br />';
}
?>
string作为$string){
回显“属性:”。$string->attributes()。
; } ?>

simplexmlement
类中的
attributes()
方法将帮助您-

您可以使用xpath表达式获取具有您要查找的名称的元素:

(string)current($xml->xpath('/content/string[@name="username"]'))
$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;
}
<?php
$xml = simplexml_load_file('de.xml');

foreach($xml->string as $string) { 
  echo 'attributes: '. $string->attributes() .'<br />';
}
?>
(string)current($xml->xpath('/content/string[@name="username"]'))