gpt4 book ai didi

php - 在 php simplexml xpath 中查找子项

转载 作者:行者123 更新时间:2023-12-03 17:06:30 25 4
gpt4 key购买 nike

我正在对 xml 流运行 xpath 查询并检索一组数据。在那我需要找到标签名称。但我无法找到检索标签名称的方法。 xml流是

<Condition> 
<Normal dataItemId="Xovertemp-06" timestamp="2011-09-02T03:35:34.535703Z" name="Xovertemp" sequence="24544" type="TEMPERATURE"/>
<Normal dataItemId="Xservo-06" timestamp="2011-09-02T03:35:34.535765Z" name="Xservo" sequence="24545" type="LOAD"/>
<Normal dataItemId="Xtravel-06" timestamp="2011-09-02T03:35:34.535639Z" name="Xtravel" sequence="24543" type="POSITION"/>
</Condition>

我试图将其解析为
Temperature = Normal
Load - Normal

所以我所做的是
foreach ($xml->xpath("//n:Condition")->children("n") as $child) {
echo $child["type"] . "=" . $child->getName();
}

我收到以下错误
Fatal error: Call to a member function children() on a non-object in C:\xampp\htdocs\DataDumper\datadumper\test.php on line 53

现在我知道这与我查询 xpath 或其他东西的方式有关,我尝试了各种组合,例如在查询中添加 * 斜杠,但每次都出现相同的错误。

最佳答案

不知道你为什么首先使用命名空间符号(示例 xml 没有命名空间)

在您的 xpath 中,您需要选择所有 condition/normal标签,而不是 condition像你一样标记...
另外,xpath()返回一个列表,所以 foreach超过它。您不需要将其作为子级访问,除非您想解析 $child 的子级.在那里它是有意义的,它会按预期工作。

foreach ($xml->xpath("/Condition/Normal") as $child) {
echo $child["type"] . "=" . $child->getName()."<br/>";
}

输出
TEMPERATURE=Normal
LOAD=Normal
POSITION=Normal

关于php - 在 php simplexml xpath 中查找子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7279638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com