gpt4 book ai didi

php - simpleXML:解析 XML 以仅输出元素属性

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

我正在尝试使用 simpleXML 解析 XML 文件,但我不断遇到问题(请注意,我是 PHP 菜鸟。)

这是 XML 文件的结构..(命名约定用于提高可读性。)

<World>
<Continent Name="North America" Status="" >
<Country Name="United States of America" Status="">
<City Name="New York" Status="" />
<City Name="Chicago" Status="" />
</Country>
</Continent>
</World>

所有数据都设置为属性(不是我的决定)。我需要能够输出每个数据的名称属性,以及指示状态的第二个属性。 “大陆”将是唯一的,但每个“大陆”允许有多个“国家”和“城市”。

这是我目前拥有的 PHP...

<?php
$xml_file = '/path';
$xml = simplexml_load_file($xml_file);

foreach($xml->Continent as $continent) {
echo "<div class='continent'>".$continent['Name']."<span class='status'>".$continent['Status']."</span></div>";
echo "<div class='country'>".$continent->Country['Name']."<span class='status'>".$continent->Country['Status']."</span></div>";
echo "<div class='city'>".$continent->Country->City['Name']."<span class='status'>".$continent->Country->City['Status']."</span></div>";
}

?>

如何避免使用 -> 重复自己并逐级进行?我以为我可以使用 xpath,但是我很难上手。另外,我如何确保所有城市都出现而不仅仅是第一个城市?

最佳答案

您可能没有“骑自行车”这些国家和城市:

<?php
$xml_file = '/path';
$xml = simplexml_load_file($xml_file);

foreach($xml->Continent as $continent) {
echo "<div class='continent'>".$continent['Name']."<span class='status'>".$continent['Status']."</span>";
foreach($continent->Country as $country) {
echo "<div class='country'>".$country['Name']."<span class='status'>".$country['Status']."</span>";
foreach($country->City as $city) {
echo "<div class='city'>".$city['Name']."<span class='status'>".$city['Status']."</span></div>";
}
echo "</div>"; // close Country div
}
echo "</div>"; // close Continent div
}
?>

关于php - simpleXML:解析 XML 以仅输出元素属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14696533/

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