首页 > 解决方案 > 如何使用 PHP 返回 XML 属性

问题描述

我正在尝试在以下 XML 文件中返回测试的名称:

$xmlstr = <<<XML
<robot rpa="false" generated="20190905 22:17:06.914" 
generator="Robot 3.1.2">
<suite source="test.xml" id="s1" name="testXML">
<test id="s1-t1" name="[TC000] TEST 000">
</test>
<test id="s1-t2" name="[TC001] TEST 001">
</test>
</suite>
</robot>
XML;

我尝试使用以下 php 代码定位父元素测试:

<?php include 'log.php';
$robot = new SimpleXMLElement($xmlstr);
foreach ($robot->test as $name) {
echo $name->name, PHP_EOL;
} ?>

我想回显测试名称 [TC000] TEST 000

标签: phpxml

解决方案


正如@u_mulder 指出的那样,test元素在元素内部suite。此外,您正在尝试访问test元素的属性,因此您必须使用数组表示法而不是对象表示法(参见手册)。这将起作用:

$robot = new SimpleXMLElement($xmlstr);
foreach ($robot->suite->test as $name) {
    echo $name['name'], PHP_EOL;
}

输出:

[TC000] TEST 000
[TC001] TEST 001

3v4l.org 上的演示


推荐阅读