旅の途中、美しい人に出会いました。記念に一句、したためます。
年に数回、出会えれるか出会えないか・・。今生は六年で五回也。

今回はXMLのデータ型のポエムです。

XMLをデータ反映させる時、以下の2パターンがあったとします。

/** * パターンA */ <?xml version="1.0" encoding="utf-8" ?> <rsp> <file> <user_id>106</user_id> <nickname>tom</nickname> </file> </rsp>

/** * パターンB */ <?xml version="1.0" encoding="utf-8" ?> <rsp> <files> <file> <user_id>106</user_id> <nickname>tom</nickname> </file> <file> <user_id>02</user_id> <nickname>matsu</nickname> </file> </files> </rsp>

パターンAは、単一データの取得
パターンBは、一覧から単一データの取得

どちらも、単一のfileノードを参照した場合、データ型は同じでしょうか?

少し考えると「単一ノードなのだから同じ」と思える余地もありそうです。
しかし、ルートノードの直下はXMLList型となります。
パターンAですと、fileはXMLList型。パターンBですと、file[n]はXML型です。

僕は、恥ずかしながら案件で少しはまりました。

上記のような“同一の機構も用いたデータ参照に、データ階層の異なる2つ以上のXMLがある場合”、*型で対応するか、型で処理を分ける必要がありますね。

冷静に 概念見直せ バグ出たら(5, 7+1, 5)

では!

HTML5飯