首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中从XML文件中获取属性的值?

如何在PHP中从XML文件中获取属性的值?
EN

Stack Overflow用户
提问于 2009-08-10 19:40:36
回答 4查看 83.9K关注 0票数 19

抱歉,如果这看起来是一个简单的问题,但我已经开始在这个问题上拔毛了.

我有一个XML文件,看起来像这样...

代码语言:javascript
复制
<VAR VarNum="90">
  <option>1</option>
</VAR>

我正在尝试获取VarNum

到目前为止,我已经成功地使用以下代码获取了其他信息:

代码语言:javascript
复制
$xml=simplexml_load_file($file);
$option=$xml->option;

我就是得不到VarNum (我想是属性值吗?)

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-10 19:47:02

您应该能够使用SimpleXMLElement::attributes()获得此结果

试试这个:

代码语言:javascript
复制
$xml=simplexml_load_file($file);
foreach($xml->Var[0]->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}

这将显示第一个foo元素的所有名称/值属性。它是一个关联数组,所以你也可以这样做:

代码语言:javascript
复制
$attr = $xml->Var[0]->attributes();
echo $attr['VarNum'];
票数 24
EN

Stack Overflow用户

发布于 2009-08-10 19:44:39

使用$xml['VarNum']怎么样?

如下所示:

代码语言:javascript
复制
$str = <<<XML
<VAR VarNum="90">
  <option>1</option>
</VAR>
XML;

$xml=simplexml_load_string($str);
$option=$xml->option;

var_dump((string)$xml['VarNum']);

(我之所以使用simplexml_load_string,是因为我将XML粘贴到一个字符串中,而不是创建一个文件;在本例中,使用simplexml_load_file就可以了!)

会给你带来

代码语言:javascript
复制
string '90' (length=2)

使用simpleXML,您可以使用数组语法访问属性。

您必须转换为字符串才能获得值,而不是与SimpleXMLElement的实例进行转换

例如,参见手册中的example #5 of Basic usage :-)

票数 14
EN

Stack Overflow用户

发布于 2012-12-28 14:35:31

代码语言:javascript
复制
[0] => Array
                (
                    [@attributes] => Array
                        (
                            [uri] => https://abcd.com:1234/abc/cst/2/
                        [id] => 2
                    )

                [name] => Array
                    (
                        [first] => abcd
                        [last] => efg
                    )

                [company] => abc SOLUTION
                [email] => abc@xyz.com
                [homepage] => WWW.abcxyz.COM
                [phone_numbers] => Array
                    (
                        [phone_number] => Array
                            (
                                [0] => Array
                                    (
                                        [main] => true
                                        [type] => work
                                        [list_order] => 1
                                        [number] => +919876543210
                                    )

                                [1] => Array
                                    (
                                        [main] => false
                                        [type] => mobile
                                        [list_order] => 2
                                        [number] => +919876543210
                                    )

                            )

                    )

                [photo] => Array
                    (
                        [@attributes] => Array
                            (
                                [uri] => https://abcd.com:1234/abc/cst/2/cust_photo/
                            )

                    )

            )

我应用了下面的代码

代码语言:javascript
复制
$xml = simplexml_load_string($response);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
print_r($array);

但它不是全部使用,我想在php中的单个数组中的所有数据。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1256796

复制
相关文章

相似问题

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