PHP,XML-获取子节点及其属性

Mar*_*ark 4 php xml dom codeigniter

如何从此XML文件中获取所有“座位”子节点及其属性?

   <seatmap id="1">
      <seat row="A" seatnum="01" available="1" />
      <seat row="A" seatnum="02" available="1" />
      <seat row="A" seatnum="03" available="1" />
      <seat row="A" seatnum="04" available="1" />
      <seat row="A" seatnum="05" available="1" />
    </seatmap>
Run Code Online (Sandbox Code Playgroud)

我有不同的座位图,因此我想通过使用ID查询然后将所有“座位”节点及其属性分配给变量来获取它们。

到目前为止,我一直在使用DOM方法,但是当您从DOMDocumet,DOMElement,DOMNode进行深入研究时,也许simpleXML或XPath会更加容易,因为它确实令人困惑。

任何帮助都会很棒,欢呼!

Tim*_*per 6

$XML = <<<XML
<parent>
   <seatmap id="1">
      <seat row="A" seatnum="01" available="1" />
      <seat row="A" seatnum="02" available="1" />
      <seat row="A" seatnum="03" available="1" />
      <seat row="A" seatnum="04" available="1" />
      <seat row="A" seatnum="05" available="1" />
    </seatmap>
</parent>
XML;

$xml_nodes = new SimpleXMLElement($XML);

$nodes = $xml_nodes->xpath('//seatmap[@id = "1"]/seat'); // Replace the ID value with whatever seatmap id you're trying to access

foreach($nodes as $seat)
{
    // You can then access: $seat['row'], $seat['seatnum'], $seat['available']
}
Run Code Online (Sandbox Code Playgroud)