使用具有结构的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
有人知道我想念的吗?
谢谢你
答案 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]#