1

たとえば、xml ファイルに 2 種類のノードがあります。

    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_stringsimplexml_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 に答える