如何有序地打印节点值 XML PHP

How can print node value XML in an orderly way PHP

我有一个 XML 这样的:

<description>
    <heading id="01"> Math </heading>
    <p id="01"> Text 1 </p>
    <heading id="02"> History </heading>
    <p id="02"> Text 2</p>
    <p id="03"> Text 3</p>
    <heading id="03"> Biology </heading>
    <p id="04"> Text 4 </p>
</description>

我也有很多xml文件有这样的结构,它们只是与每个<heading>节点的<p>节点数量不同。 如何打印 <heading> 和一些 <p> 节点以及第二个标题....

我尝试使用 foreach,但事实并非如此。 我的代码:

<?php
$xml=simplexml_load_file("NWB2.xml") or die("Error: Cannot create object");
echo "<b>".$xml->{'description'}->{'heading'}."</b>";
echo "<p>".$xml->{'description'}->{'p'}."</p>";
?>

如果只是根据输入标签有不同的样式,可以使用foreach()循环并根据标签类型输出值...

$xml=simplexml_load_file("NWB2.xml") or die("Error: Cannot create object");
foreach ( $xml as $type => $value )    {
    if ($type == "p")  {
        echo $value;
    }
    else {
        echo "<b>$value</b>";
    }
}