我有许多以下格式的 XML 对象:
<GetSingleItemResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2012-10-25T03:09:50.817Z</Timestamp>
<Ack>Success</Ack>
<Build>E795_CORE_BUNDLED_15430047_R1</Build>
<Version>795</Version>
<Item>
<Description>...</Description>
<ItemID>330810813385</ItemID>
<EndTime>2012-10-25T04:32:37.000Z</EndTime>
<Location>Paypal Prefered</Location>
<GalleryURL>...</GalleryURL>
<PictureURL>...</PictureURL>
<PictureURL>...</PictureURL>
<PrimaryCategoryID>177</PrimaryCategoryID>
<PrimaryCategoryName>
Computers/Tablets & Networking:Laptops & Netbooks:PC Laptops & Netbooks
</PrimaryCategoryName>
<BidCount>2</BidCount>
<ConvertedCurrentPrice currencyID="USD">294.99</ConvertedCurrentPrice>
<ListingStatus>Active</ListingStatus>
<TimeLeft>PT1H22M47S</TimeLeft>
<Title>
HP Compaq ZD8000 3800Mhz Full Loaded Ready to go, nice unit & super fast Laptop
</Title>
<ShippingCostSummary>
<ShippingServiceCost currencyID="USD">23.99</ShippingServiceCost>
<ShippingType>Flat</ShippingType>
<ListedShippingServiceCost currencyID="USD">23.99</ListedShippingServiceCost>
</ShippingCostSummary>
<ItemSpecifics>
<NameValueList>
<Name>Operating System</Name>
<Value>Windows XP Professional</Value>
</NameValueList>
<NameValueList>
<Name>Screen Size</Name>
<Value>17.0</Value>
</NameValueList>
<NameValueList>
<Name>Processor Type</Name>
<Value>Intel Pentium 4 HT</Value>
</NameValueList>
</ItemSpecifics>
<Country>US</Country>
<AutoPay>false</AutoPay>
<ConditionID>2500</ConditionID>
<ConditionDisplayName>Seller refurbished</ConditionDisplayName>
</Item>
</GetSingleItemResponse>
对于每个 xml 对象,我想获取所有项目标签标签,例如 itemid、endtime 等。以及所有项目特定标签标签,例如操作系统、屏幕大小等。我想保存this 将每个 xml 对象放入内存中,转换成适当的数据结构(对象)。最后,我想将所有 xml 对象的所有信息写入 csv 文件。
困难在于先验我不知道 csv 文件的列(标题)是什么。对于第一个 xml 对象,我将创建与项目和项目细节组合所具有的子标签数量一样多的列。
然后,随着新项目出现新列,我将添加越来越多的列,为以前未出现的列添加 NA。
我正在寻找有关如何处理 xml 对象、转换(保存)xml 对象的数据结构以及如何将所有最终处理的 xml 数据写入 csv 文件的建议。
谢谢。