【发布时间】:2021-03-27 00:50:36
【问题描述】:
我认为我在使用 xPath 时遇到了问题,它的行为与我预期的不一样,尽管我可能预期会出现问题!
所以我想问一下为什么我用于从属性值设置 PHP 变量的以下行返回一个数组,在我得到值之前有几个级别,而不是值的字符串。
我的 XML 文件的开头是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<ReaderDetails updated="16/12/2020 10:33:02">
我想将 'updated' 的值作为字符串获取,并设置为一个变量,我相信我可以这样做:
$updated = simplexml_load_string(file_get_contents($xml), null, true)->xpath('//ReaderDetails/@updated');
但是,在 NetBeans 中调试时,我从变量中得到的结果是一个嵌套数组,里面有属性名称和值:
有人可以帮助我解决我的 PHP 变量行(尤其是 Xpath)为什么它没有按预期工作吗?
补充说明:
- 只有一个
ReaderDetails节点
【问题讨论】:
-
你得到一个嵌套数组,因为 PHP 都知道,可能有多个
ReaderDetails节点。它会给你找到每个节点的属性。 -
好的,谢谢。我知道文件中只有一个 ReaderDetails 节点,如果这有什么不同?
-
当然,但我的意思是 API 没有,所以它总是返回一个数组。它不会改变它返回的内容,只是在 XML 结构是 X 而不是 Y 的情况下。
-
好的,我明白这一点,所以我可以删除第一个数组,但将
[0]添加到行尾,但更重要的是我需要得到的@attribute 和值。