php - 如何使用 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
解决方案
正如@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
推荐阅读
- excel - VBA 运行时错误 424 - 使用单元格数组时出错()
- python - 创建 pythonic 变量 if-else-structure
- google-bigquery - 使用我的最终用户凭据创建 BigQuery adwords 传输
- sparql - SPARQL - 当对象是 URI 时返回标签,或者当对象是字面量时返回字符串
- xml - 在将 XML 反序列化为 Rust 结构时,是否可以在没有中间结构的情况下直接映射子级?
- python - 方差膨胀因子输出统计模型
- scheme - 如何(eval ...)在鸡 r7rs 库中?
- javascript - 为什么我的 reduce() 函数无法找出正确的 maxGrade?
- ios - Ionic Native Diagnostic 未在 iOS 中触发
- hammerspoon - 如何防止hammerspoon 热键覆盖其他应用程序中的热键?