0

ルビー、のりきり、のりを使用しています。この 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>

この問題にアプローチする最善の方法は何でしょうか?

ありがとう

4

1 に答える 1