1

例如,我的 xml 文件中有两种类型的节点:

    1) <book>
    2) <author>

一个名为 $node 的变量指向特定的节点(未知类型)。如何访问此节点的名称?它必须是这样的:

    if($node->name()=="book")
    process_book($node);
    else
    process_author;
4

2 回答 2

0

SimpleXMLElement有一个getName()方法:

echo $node->getName();

假设: $node是一个 SimpleXMLElement 对象。

于 2012-11-16T17:00:29.427 回答
0

我可能遗漏了一些东西,但这是一个简单的解决方案。如果您使用文件,请 更改simplexml_load_string为。simplexml_load_file

$xml_string = <<<XML
<root>
    <item>
        <book>Book 1</book>
        <author>Author 1</author>
    </item>
    <item>
        <book>Book 2</book>
        <author>Author 2</author>
    </item>
    <item>
        <book>Book 3</book>
        <author>Author 3</author>
    </item>
</root>
XML;

$xml = simplexml_load_string($xml_string);

foreach($xml->item as $node){
    if(isset($node->book)){
        process_book($node);
    }
}
于 2012-11-16T17:22:55.637 回答