首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将XML文件转换为PHP数组(带属性)

将XML文件转换为PHP数组(带属性)
EN

Stack Overflow用户
提问于 2010-12-20 02:43:42
回答 3查看 5.7K关注 0票数 3

我以前并没有真正使用过xml文件,但现在我正尝试将xml文件放入php数组或对象中。xml文件看起来像这样:(它用于翻译web应用程序)

代码语言:javascript
复制
<?xml version="1.0" ?>
<content language="de"> 
 <string name="login">Login</string>
 <string name="username">Benutzername</string>
 <string name="password">Passwort</string>
</content>

我尝试了以下几种方法:

代码语言:javascript
复制
$xml = new SimpleXMLElement("de.xml", 0, 1);
print_r($xml);

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

例如:

代码语言:javascript
复制
$xml['username'] //returns "Benutzername"

如何做到这一点?感谢您的帮助:)干杯!

EN

回答 3

Stack Overflow用户

发布于 2010-12-20 03:03:18

这一条应该会向你解释它的功能:

代码语言:javascript
复制
<?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

票数 1
EN

Stack Overflow用户

发布于 2010-12-20 03:02:20

代码语言:javascript
复制
$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
EN

Stack Overflow用户

发布于 2010-12-20 03:05:44

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

代码语言:javascript
复制
(string)current($xml->xpath('/content/string[@name="username"]'))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4484503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档