gpt4 book ai didi

php simplexml 根据某个字段的值获取特定项

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:03:02 24 4
gpt4 key购买 nike

有没有一种方法可以使用 SimpleXML 获取特定项目?

例如,我想使用此示例 xml 获取 ID 设置为 12437 的项目的标题:

<items>
<item>
<title>blah blah 43534</title>
<id>43534</id>
</item>
<item>
<title>blah blah 12437</title>
<id>12437</id>
</item>
<item>
<title>blah blah 7868</title>
<id>7868</id>
</item>
</items>

最佳答案

这里有两种简单的方法来做你想做的事,一种是像这样迭代每个项目:

<?php
$str = <<<XML
<items>
<item>
<title>blah blah 43534</title>
<id>43534</id>
</item>
<item>
<title>blah blah 12437</title>
<id>12437</id>
</item>
<item>
<title>blah blah 7868</title>
<id>7868</id>
</item>
</items>
XML;

$data = new SimpleXMLElement($str);
foreach ($data->item as $item)
{
if ($item->id == 12437)
{
echo "ID: " . $item->id . "\n";
echo "Title: " . $item->title . "\n";
}
}

Live DEMO.

另一种方法是使用 XPath,像这样精确定位您想要的数据:

<?php
$str = <<<XML
<items>
<item>
<title>blah blah 43534</title>
<id>43534</id>
</item>
<item>
<title>blah blah 12437</title>
<id>12437</id>
</item>
<item>
<title>blah blah 7868</title>
<id>7868</id>
</item>
</items>
XML;

$data = new SimpleXMLElement($str);
// Here we find the element id = 12437 and get it's parent
$nodes = $data->xpath('//items/item/id[.="12437"]/parent::*');
$result = $nodes[0];
echo "ID: " . $result->id . "\n";
echo "Title: " . $result->title . "\n";

Live DEMO.

关于php simplexml 根据某个字段的值获取特定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17537909/

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