如何按父项的属性访问xml标记

时间:2015-05-20 02:48:10

标签: php html xml xpath attributes

这是xml:

的一部分
<?xml version="1.0"?>
<menu>
 <pizzas>

<pizza number="0">
  <title>Tomato &amp; Cheese</title>
  <small>550</small>
  <medium></medium>
  <large>975</large>
</pizza>

PHP:

<?php
    session_start();
?>
<div id="basket">
    <h3 style="text-align:center; position:static;">Your Order:</h3>
    <?php
        $numberSelected = '';
        $_SESSION['link'] = $numberSelected;

        class dom{}

        $dom = new dom;
        $dom = simplexml_load_file("../../menu.xml");

        foreach ($dom->xpath("/menu/*/*") as $item)
        {
            print $item->title;
        }

        print_r($_SESSION);
    ?>
</div>

如何使用$ numberSelected变量中存储的数字打印披萨/项目的标题?

我不知何故需要访问<title></title>标记内的值,该标记位于其父级内部,例如<pizza number="x">,其中x来自变量$ numberSelected。

1 个答案:

答案 0 :(得分:1)

您也可以通过xpath选择其属性正在使用=的节点:

[@number='$numberSelected']

所以只需查询它并继续获得结果,如果它确实产生了。如果您期望更多,请使用foreach

$result = $dom->xpath("//pizza[@number='$numberSelected']");
if(!empty($result)) {
    $pizza = $result[0];
    echo $pizza->title; // and others
}

Sample Output