如何让这个 php foreach 解析所有 <mod> 条目?
How do I get this php foreach to parse through all of the <mod> entries?
我需要解析所有“”标签条目中的 "name" 和 "version" 属性。
感谢 this page 我只能解析 xml.
中的第一个“”标签
我不是程序员,所以我不知道如何继续下去。
这是我的xml file。
这些是我的测试 php 文件。
$xmlfile = simplexml_load_file("packa.xml");
foreach ($xmlfile->children() as $mods) {
echo $mods->mod['name']."</br>";
echo $mods->mod['version'];
}
有这个输出。
</br></br>Just Enough Items</br>4.15.0.293
和
foreach ($xmlfile->children() as $mods) {
echo $mods->mod['name']."
</br>".$mods->mod['version'];
}
有这个输出
</br>
</br>Just Enough Items
</br>4.15.0.293
您可以使用 xpath 沿这些思路进行尝试:
$result = $xmlfile->xpath('//mods//mod');
foreach($result as $mod){
$nam = $mod->xpath('.//@name');
$ver = $mod->xpath('.//@version');
echo implode ( $nam). "</br>" .implode( $ver );
echo "<br>";
}
输出:
Just Enough Items
4.15.0.293
MTLib
3.0.6
CraftTweaker2
1.12-4.1.20
Mod Tweaker
4.0.18
等等
您在 foreach()
循环中的 XML 中使用了错误的级别,这只是在 <mods>
元素上循环 - 只有 1 个元素。您需要指定您想要遍历 <mod>
元素,然后像您已经做的那样访问属性...
foreach ($xmlfile->mods->mod as $mod) {
echo $mod['name'] . "/" . $mod['version'] . "</br>" . PHP_EOL;
}
我需要解析所有“
感谢 this page 我只能解析 xml.
中的第一个“我不是程序员,所以我不知道如何继续下去。
这是我的xml file。
这些是我的测试 php 文件。
$xmlfile = simplexml_load_file("packa.xml");
foreach ($xmlfile->children() as $mods) {
echo $mods->mod['name']."</br>";
echo $mods->mod['version'];
}
有这个输出。
</br></br>Just Enough Items</br>4.15.0.293
和
foreach ($xmlfile->children() as $mods) {
echo $mods->mod['name']."
</br>".$mods->mod['version'];
}
有这个输出
</br>
</br>Just Enough Items
</br>4.15.0.293
您可以使用 xpath 沿这些思路进行尝试:
$result = $xmlfile->xpath('//mods//mod');
foreach($result as $mod){
$nam = $mod->xpath('.//@name');
$ver = $mod->xpath('.//@version');
echo implode ( $nam). "</br>" .implode( $ver );
echo "<br>";
}
输出:
Just Enough Items
4.15.0.293
MTLib
3.0.6
CraftTweaker2
1.12-4.1.20
Mod Tweaker
4.0.18
等等
您在 foreach()
循环中的 XML 中使用了错误的级别,这只是在 <mods>
元素上循环 - 只有 1 个元素。您需要指定您想要遍历 <mod>
元素,然后像您已经做的那样访问属性...
foreach ($xmlfile->mods->mod as $mod) {
echo $mod['name'] . "/" . $mod['version'] . "</br>" . PHP_EOL;
}