繁体   English   中英

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

[英]Reading attribute values from XML file with php

使用具有以下结构的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

有人知道我想念什么吗?

谢谢

即使使用第一个示例,它也将返回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]#

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM