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

标签 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>

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

到目前为止,我一直在使用 DOM 方法,但也许 simpleXML 或 XPath 会更容易,因为它确实 当您从 DOMDocumet、DOMElement、DOMNode 向下钻取时会感到困惑。

任何帮助都会很棒,干杯!

最佳答案

$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']
}

关于PHP、XML - 获取子节点及其属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4914803/

相关文章:

php - 如何在 redirecturl 中显示 Mollie 订单状态?

javascript - 在 jQuery 插件初始化中使用 PHP 变量?

javascript - 重定向页面会划分页面的 SEO 声誉

php - 正弦回归 PHP

java - 错误 : The processing instruction target matching "[xX][mM][lL]" is not allowed

javascript - 如何使用同一子域上的 URL 访问 iframe 的元素?

javascript - 单击时从 DOM 中删除元素的可移植函数?

javascript - 查询的 NodeLists 中的 "order"有多可靠

java - 从 XML 节点 java 生成/获取 xpath

java - Android:第一个 ListView 元素位于标题栏下方