ルビー、のりきり、のりを使用しています。この XML ファイルを解析する方法について考えてみたいと思います。
このスキーマでは、エンティティに複数の連絡先を含めることができます。
次のハッシュを返す必要があります。
- :id
- :ファーストネーム
- :苗字
- :preferred_email
- :マネジャー
xpath を使用して優先メール連絡先を返すことを考えました。
entities = doc.xpath("/entity_list/entity").each do |entity|
puts entity.xpath("contact_list/contact[contains(type,'Email') and contains(preferred, '1')]")
end
<entity>
<id>21925</id>
<last_name>Smith</last_name>
<first_name>John</first_name>
<preferred_name>Johnny</preferred_name>
<manager>Timmy</manager>
<dob>1970-01-01</dob>
<type>individual</type>
<contact_list>
<contact>
<type>Mobile Phone</type>
<preferred>0</preferred>
<value>563478653478</value>
</contact>
<contact>
<type>Pager</type>
<preferred>0</preferred>
<value>7354635345</value>
</contact>
<contact>
<notes>None</notes>
<type>Home Email</type>
<preferred>1</preferred>
<value>johhny@smith.com</value>
<comments>None</comments>
</contact>
<contact>
<notes>None</notes>
<type>Work Email</type>
<preferred>0</preferred>
<value>johhny@gmail.com</value>
<comments>None</comments>
</contact>
<contact>
<type>Home Phone</type>
<preferred>1</preferred>
<value>56537646365</value>
</contact>
</contact_list>
</entity>
この問題にアプローチする最善の方法は何でしょうか?
ありがとう