2010-12-19 5 views
3

これまでXMLファイルで作業していませんでしたが、今はPHPの配列やオブジェクトにxmlファイルを取得しようとしています。 xmlファイルは次のようになります(これは、Webアプリケーションを変換するためです)XMLファイルからPHP配列へ(属性付き)

<?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); 

残念ながら、「名前」属性の値が何らかの理由ではありませんphpオブジェクト内にあります。私はname属性でxml値を取得できる方法を探しています。例えば

$xml['username'] //returns "Benutzername" 

がどのようにこれを行うことができますか? あなたの助けに感謝:)歓声!

答えて

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; 
} 
0

この1つは、あなたに機能を説明する必要があります

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

foreach($xml->string as $string) { 
    echo 'attributes: '. $string->attributes() .'<br />'; 
} 
?> 

SimpleXMLElementクラスからattributes()メソッドがお手伝いします - http://de.php.net/manual/en/simplexmlelement.attributes.php

0

あなたが持つ要素を取得するにはXPath式を使用することができますあなたが探している名前:

(string)current($xml->xpath('/content/string[@name="username"]')) 
関連する問題