1

したがって、ファイル「test.xml」から読み取っている次の形式のXMLがあります

<XML>
<Agent ID="ABC123">
    <Property>
        <Code>XYZ</Code>
        <Name>Hotel 1</Name>
    </Property>
    <Property>
        <Code>237</Code>
        <Name>Hotel 2</Name>
    </Property>
    <Property>
        <Code>213</Code>
        <Name>Hotel 3</Name>
    </Property>
</Agent>
<Agent ID="DEF456">
    <Property>
        <Code>333</Code>
        <Name>Hotel 4</Name>
    </Property>
    <Property>
        <Code>23423</Code>
        <Name>Hotel 5</Name>
    </Property>
</Agent>
<Agent ID="GHI789">
    <Property>
        <Code>45345</Code>
        <Name>Hotel 6</Name>
    </Property>
</Agent>
</XML>

上記を次の形式で出力できるようにしたい:

Agent | Code | Name
ABC123 | XYZ | Hotel 1
ABC123 | 237 | Hotel 2
......

複数のエージェントがあり、各エージェント内にさまざまな量のプロパティがあるため、これを行うにはどうすればよいですか?

私は XMLReader を使用した経験がありますが、SimpleXML などの代替手段を喜んで試してみます。

これ(Foreach Agent ....)でForeachループを使用する必要があると思いますが、どこから始めればよいかわかりません。

ありがとう!

4

1 に答える 1

3

これを見てください:

$sxe = new SimpleXMLElement($xmlstr);

echo 'Agent | Code | Name'.PHP_EOL;
foreach ( $sxe->Agent as $agent )
{
    $attr = $agent->attributes();

    foreach ( $agent->Property as $property )
    {
        echo $attr['ID'].' | '.$property->Code.' | '.$property->Name.PHP_EOL;       
    }
}
于 2012-06-28T06:19:19.923 に答える