使用php从XML文件中读取属性值

时间:2014-07-10 12:50:45

标签: php xml

使用具有结构的XML文件:

<?xml version="1.0"?>
<element>
    <child attrName="something"/>
</element>

我可以使用php访问以表达式读取attrName值:

<?php
$xml = simplexml_load_file("fileAbove.xml") or die("Error: Cannot create object");
foreach($xml->children() as $child) {
    if($child->getName() == "element") {
        $attrValue = $xml->xpath('/element/child/@attrName');
        echo $attrValue;
    }
}
?>

结果将是:

something

但是这个文件结构如何使用上面相同的php代码来获取attrValue呢?

<?xml version="1.0"?>
<element someAttr="" otherAttr="">
    <child attrName="attrValue"/>
</element>

我发现错误:

Notice: Undefined offset: 0

有人知道我想念的吗?

谢谢你

1 个答案:

答案 0 :(得分:0)

即使你的第一个例子,它返回null。以下代码可以解决您的问题。

fileAbove.xml:

<?xml version="1.0"?>
<element someAttr="" otherAttr="">
 <child attrName="attrValue"/>
</element>

readchild.php

<?php
  $xml = simplexml_load_file("fileAbove.xml") or die("Error: Cannot create object");
  foreach($xml->child[0]->attributes() as $a) {
    echo $a . "\n";
  }
?>

结果如下:

[root@web01 temp]# php readchild.php
attrValue
[root@web01 temp]#