PHP - xml中的两个相同节点

时间:2015-05-07 06:26:13

标签: php xml nodes

我有以下代码:

<?php
    $str = '<?xml version="1.0" encoding="utf-8"?>
            <ROOT>
                <ITEM>
                    <TITLE>Title1</TITLE>
                    <CATEGORY>Books</CATEGORY>
                    <CATEGORY>Books | Novel</CATEGORY>
                </ITEM>
                <ITEM>
                    <TITLE>Title2</TITLE>
                    <CATEGORY>Books</CATEGORY>
                    <CATEGORY>Books | Sci-fi</CATEGORY>
                </ITEM>
            </ROOT>';

    $xml = simplexml_load_string($str);

    $s_xml = $xml->xpath("/ROOT/ITEM");
    foreach($s_xml as $s_cat){
        $cat_group = htmlspecialchars($s_cat->CATEGORY);
        echo $cat_group."<BR />";
    }
?>

我无法编辑XML,所以我需要解决以下问题。如何对PHP说我需要显示名为CATEGORY的第二个节点而不是第一个节点。在我的例子中,我有输出

Books
Books

我需要:

Books | Novel
Books | Sci-fi

谢谢!

1 个答案:

答案 0 :(得分:1)

这就是你要找的东西(注意[1]):

 $cat_group = htmlspecialchars($s_cat->CATEGORY[1]);

它采用类别元素数组中的第二项

您可以随时查看您的元素,以了解结构的外观:

print_r($s_cat->CATEGORY);