問題描述
我正在尋求一些幫助,嘗試將從亞馬遜產品 API 檢索到的 XML 轉換為 CSV(逗號分隔值)格式.
我在這里找到了一個類似的主題:XML 到 CSV 轉換問題,但它使用PHP,我想改用 javascript.
這是我所擁有的示例:
<?xml version="1.0" encoding="UTF-8"?><ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2011-08-01"><操作請求><RequestId>1k75f474-85ff-464a-al93-659ol460caee</RequestId><論據><參數名稱="操作"值="ItemLookup"/><參數名稱="服務" 值="AWSECommerceService"/><參數名稱="簽名"值="lImNXr6R4c2t376ghMnMmjUPR4eY6755XzH41pXGH0P="/><參數名稱="AssociateTag" 值="oiuig-20"/><參數名稱="ItemId" 值="B007EHI1DK"/><參數名稱="AWSAccessKeyId" 值="DIY7F4M00OF6I7TRD3VA"/><參數名稱="時間戳"值="2013-01-04T05:23:20Z"/><參數名稱=響應組"值=大"/></參數><RequestProcessingTime>0.0359500000000000</RequestProcessingTime></操作請求><項目><請求><IsValid>True</IsValid><ItemLookupRequest><IdType>ASIN</IdType><ItemId>B007EHI1DK</ItemId><ResponseGroup>大</ResponseGroup><VariationPage>全部</VariationPage></ItemLookupRequest></請求><項目><ASIN>B007EHI1DK</ASIN><DetailPageURL>http://www.amazon.com/Panasonic-TY-ER3D4MU-Active-Shutter-Eyewear/dp/B007EHI1DK%3FSubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB007EHI1DK</DetailPageURL><項目鏈接><物品鏈接><描述>技術細節</描述><網址>http://www.amazon.com/Panasonic-TY-ER3D4MU-Active-Shutter-Eyewear/dp/tech-data/B007EHI1DK%3FSubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK</URL></ItemLink><物品鏈接><描述>添加到嬰兒注冊表</描述><網址>http://www.amazon.com/gp/registry/baby/add-item.html%3Fasin.0%3DB007EHI1DK%26SubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK</URL></ItemLink><物品鏈接><描述>添加到婚禮登記處</描述><網址>http://www.amazon.com/gp/registry/wedding/add-item.html%3Fasin.0%3DB007EHI1DK%26SubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK</URL></ItemLink><物品鏈接><描述>添加到愿望清單</描述><網址>http://www.amazon.com/gp/registry/wishlist/add-item.html%3Fasin.0%3DB007EHI1DK%26SubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK</URL></ItemLink><物品鏈接><描述>告訴朋友</描述><URL>http://www.amazon.com/gp/pdp/taf/B007EHI1DK%3FSubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK<;</ItemLink><物品鏈接><描述>所有顧客評論</描述><URL>http://www.amazon.com/review/product/B007EHI1DK%3FSubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK</URL></ItemLink><物品鏈接><描述>所有優惠</描述><URL>http://www.amazon.com/gp/offer-listing/B007EHI1DK%3FSubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK<;</ItemLink></ItemLinks><小圖像><URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL75_.jpg</URL><高度單位="像素">50</高度><寬度單位="像素">75</寬度></小圖像><中型圖像><URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL160_.jpg</URL><高度單位="像素">107</高度><寬度單位="像素">160</寬度></MediumImage><大圖><URL>http://ecx.images-amazon.com/images/I/31pKDguukTL.jpg</URL><高度單位="像素">333</高度><寬度單位="像素">500</寬度></大圖><圖像集><ImageSet 類別="主要"><樣本圖像><URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL30_.jpg</URL><高度單位="像素">20</高度><寬度單位="像素">30</寬度></SwatchImage><小圖像><URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL75_.jpg</URL><高度單位="像素">50</高度><寬度單位="像素">75</寬度></小圖像><縮略圖><URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL75_.jpg</URL><高度單位="像素">50</高度><寬度單位="像素">75</寬度></縮略圖圖像><小圖像><URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL110_.jpg</URL><高度單位="像素">73</高度><寬度單位="像素">110</寬度></TinyImage><中型圖像><URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL160_.jpg</URL><高度單位="像素">107</高度><寬度單位="像素">160</寬度></MediumImage><大圖><URL>http://ecx.images-amazon.com/images/I/31pKDguukTL.jpg</URL><高度單位="像素">333</高度><寬度單位="像素">500</寬度></大圖></圖像集><ImageSet 類別="變體"><樣本圖像><URL>http://ecx.images-amazon.com/images/I/31dSwH5PnjL._SL30_.jpg</URL><高度單位="像素">20</高度><寬度單位="像素">30</寬度></SwatchImage><小圖像><URL>http://ecx.images-amazon.com/images/I/31dSwH5PnjL._SL75_.jpg</URL><高度單位="像素">50</高度><寬度單位="像素">75</寬度></小圖像><縮略圖><URL>http://ecx.images-amazon.com/images/I/31dSwH5PnjL._SL75_.jpg</URL><高度單位="像素">50</高度><寬度單位="像素">75</寬度></縮略圖圖像><小圖像><URL>http://ecx.images-amazon.com/images/I/31dSwH5PnjL._SL110_.jpg</URL><高度單位="像素">73</高度><寬度單位="像素">110</寬度></TinyImage><中型圖像><URL>http://ecx.images-amazon.com/images/I/31dSwH5PnjL._SL160_.jpg</URL><高度單位="像素">107</高度><寬度單位="像素">160</寬度></MediumImage><大圖><URL>http://ecx.images-amazon.com/images/I/31dSwH5PnjL.jpg</URL><高度單位="像素">333</高度><寬度單位="像素">500</寬度></大圖></圖像集><ImageSet 類別="變體"><樣本圖像><URL>http://ecx.images-amazon.com/images/I/31irEbzxdgL._SL30_.jpg</URL><高度單位="像素">20</高度><寬度單位="像素">30</寬度></SwatchImage><小圖像><URL>http://ecx.images-amazon.com/images/I/31irEbzxdgL._SL75_.jpg</URL><高度單位="像素">50</高度><寬度單位="像素">75</寬度></小圖像><縮略圖><URL>http://ecx.images-amazon.com/images/I/31irEbzxdgL._SL75_.jpg</URL><高度單位="像素">50</高度><寬度單位="像素">75</寬度></縮略圖圖像><小圖像><URL>http://ecx.images-amazon.com/images/I/31irEbzxdgL._SL110_.jpg</URL><高度單位="像素">73</高度><寬度單位="像素">110</寬度></TinyImage><中型圖像><URL>http://ecx.images-amazon.com/images/I/31irEbzxdgL._SL160_.jpg</URL><高度單位="像素">107</高度><寬度單位="像素">160</寬度></MediumImage><大圖><URL>http://ecx.images-amazon.com/images/I/31irEbzxdgL.jpg</URL><高度單位="像素">333</高度><寬度單位="像素">500</寬度></大圖></圖像集></圖像集><項目屬性><裝訂>電子</裝訂><品牌>松下</品牌><目錄編號列表><CatalogNumberListElement>TYER3D4M</CatalogNumberListElement><CatalogNumberListElement>TYER3D4MU</CatalogNumberListElement><CatalogNumberListElement>TY-ER3D4MU</CatalogNumberListElement></目錄編號列表><顏色>一種顏色</顏色><部門>電子</部門><EAN>0885170075207</EAN><EAN 列表><EANListElement>0885170075207</EANListElement></EANList><Feature>輕量級主動式快門 3D 眼鏡</Feature><特點>USB充電</特點><功能>RF兼容</功能><IsAutographed>0</IsAutographed><IsMemorabilia>0</IsMemorabilia><物品尺寸><Height Units="hundredths-inches">170</Height><長度單位="hundredths-inches">340</長度><Weight Units="hundredths-pounds">10</Weight><Width Units="hundredths-inches">670</Width></ItemDimensions><標簽>松下</標簽><價格清單><金額>7995</金額><CurrencyCode>USD</CurrencyCode><FormattedPrice>$79.95</FormattedPrice></列表價格><制造商>松下</制造商><型號>TY-ER3D4MU</型號><MPN>TY-ER3D4MU</MPN><NumberOfItems>1</NumberOfItems><包裝尺寸><Height Units="hundredths-inches">240</Height><長度單位="hundredths-inches">690</長度><Weight Units="hundredths-pounds">30</Weight><Width Units="hundredths-inches">350</Width></包裝尺寸><PackageQuantity>1</PackageQuantity><零件編號>TY-ER3D4MU</零件編號><ProductGroup>CE</ProductGroup><ProductTypeName>CONSUMER_ELECTRONICS</ProductTypeName><出版商>松下</出版商><尺寸>一個尺寸</尺寸><SKU>292782</SKU><工作室>松下</工作室><標題>松下 VIERA TY-ER3D4MU 主動快門 3D 眼鏡</標題><UPC>885170075207</UPC><UPC 列表><UPCListElement>885170075207</UPCListElement></UPCList></ItemAttributes><報價摘要><新品最低價><金額>5400</金額><CurrencyCode>USD</CurrencyCode><FormattedPrice>$54.00</FormattedPrice></最低新價格><最低使用價格><金額>4294</金額><CurrencyCode>USD</CurrencyCode><FormattedPrice>$42.94</FormattedPrice></最低使用價格><TotalNew>24</TotalNew><TotalUsed>18</TotalUsed><TotalCollectible>0</TotalCollectible><TotalRefurbished>0</TotalRefurbished></報價摘要><優惠><TotalOffers>1</TotalOffers><TotalOfferPages>1</TotalOfferPages><MoreOffersUrl>http://www.amazon.com/gp/offer-listing/B007EHI1DK%3FSubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007UrHI&lgt;1;<優惠><優惠屬性><條件>新的</條件></OfferAttributes><優惠清單><OfferListingId>rkyW%2Bed7Qb8t28tJRRHkKizuk2CxNF4SI6W9XAnbXI8JX%2FJNpUY%2B8zqnnNRe3Vt2l%2B8rUMqypquQnAE66PYmf32dJeor6DifXvXKscwOqyrLwgFZORqmDg%3D%3D<<價格><金額>5851</金額><CurrencyCode>USD</CurrencyCode><FormattedPrice>$58.51</FormattedPrice></價格><節省的金額><金額>2144</金額><CurrencyCode>USD</CurrencyCode><FormattedPrice>$21.44</FormattedPrice></節省的金額><PercentageSaved>27</PercentageSaved><可用性>通常在 24 小時內發貨</Availability><可用性屬性><AvailabilityType>現在</AvailabilityType><MinimumHours>0</MinimumHours><MaximumHours>0</MaximumHours></可用性屬性><IsEligibleForSuperSaverShipping>1</IsEligibleForSuperSaverShipping></OfferListing></優惠></優惠><客戶評價><IFrameURL>http://www.amazon.com/reviews/iframe?akid=AKIAIBT3ANF6TOEOKXVA&alinkCode=xm2&asin=B007EHI1DK&atag=aztag-20&exp=2013-01-05T05%3A23%3A21Z&v=2&sig=yz1U1nT8mWjFGauK3umnsOqp9BTzWwGOAAiLCyZ%2BEPM%3D</IFrameURL><HasReviews>真實</HasReviews></客戶評論><社論評論><社論評論><來源>產品描述</來源><內容><strong>3D播放類型:</strong>主動快門 3D 方法<br/><strong>透光率方法:</strong>RF(藍牙)/全高清 3D 眼鏡標準兼容<br/><strong>電池類型:</strong>鋰離子聚合物充電電池<br/><strong>電池續航時間:</strong>電池充滿 30 分鐘可運行約 30 小時(電池充電 2 分鐘可運行約 3 小時)<em>*電池使用時間將根據總使用時間隨充電/放電循環次數而變化 </em><br/><strong>包裝包括:</強>1 副眼鏡 <br/>注意:這些眼鏡僅兼容 2012 VIERA 高清電視<br/><br/><div style="text-align: left;"><strong>配件兼容性表<br/></strong></div><img height="375" src="http://g-ecx.images-amazon.com/images/G/01/electronics/Cat500/Panasonic/2012/accessory_compatibility_2._V138249826_.gif" width="650"/><br/><br/></Content><IsLinkSuppressed>0</IsLinkSuppressed></社論評論></社論評論><類似產品><類似產品><ASIN>B007K9P7H0</ASIN><標題>三星 SSG-4100GB 3D 主動式眼鏡 2012 款 - 黑色</標題></類似產品><類似產品><ASIN>B00752VKSC</ASIN><標題>松下 VIERA TC-P55ST50 55 英寸 1080p 600Hz 全高清 3D 等離子電視</標題></類似產品><類似產品><ASIN>B00752R4PK</ASIN><標題>松下 DMP-BDT220 集成 Wi-Fi 3D 藍光 DVD 播放器</標題></類似產品><類似產品><ASIN>B00752VKFA</ASIN><標題>松下 VIERA TC-P55GT50 55 英寸 1080p 600Hz 全高清 3D 等離子電視</標題></類似產品><類似產品><ASIN>B00752VL8G</ASIN><標題>松下 VIERA TC-P60GT50 60 英寸 1080p 600Hz 全高清 3D 等離子電視</標題></類似產品></類似產品><瀏覽節點><瀏覽節點><BrowseNodeId>3224438011</BrowseNodeId><名稱>3D眼鏡</名稱><祖先><瀏覽節點><BrowseNodeId>172532</BrowseNodeId><名稱>音頻&視頻配件</名稱><祖先><瀏覽節點><BrowseNodeId>281407</BrowseNodeId><名稱>配飾&耗材</名稱><祖先><瀏覽節點><BrowseNodeId>493964</BrowseNodeId><名稱>類別</名稱><IsCategoryRoot>1</IsCategoryRoot><祖先><瀏覽節點><BrowseNodeId>172282</BrowseNodeId><名稱>電子</名稱></瀏覽節點></祖先></瀏覽節點></祖先></瀏覽節點></祖先></瀏覽節點></祖先></瀏覽節點><瀏覽節點><BrowseNodeId>1288264011</BrowseNodeId><名稱>所有產品</名稱><祖先><瀏覽節點><BrowseNodeId>1267878011</BrowseNodeId><名稱>產品</名稱><IsCategoryRoot>1</IsCategoryRoot><祖先><瀏覽節點><BrowseNodeId>1267877011</BrowseNodeId></瀏覽節點></祖先></瀏覽節點></祖先></瀏覽節點><瀏覽節點><BrowseNodeId>3545110011</BrowseNodeId><名稱>家庭娛樂</名稱><兒童><瀏覽節點><BrowseNodeId>3547652011</BrowseNodeId><名稱>藍光播放器</名稱></瀏覽節點><瀏覽節點><BrowseNodeId>3547650011</BrowseNodeId><名稱>DVD播放器</名稱></瀏覽節點><瀏覽節點><BrowseNodeId>6183878011</BrowseNodeId><名稱>家庭影院投影儀</名稱></瀏覽節點><瀏覽節點><BrowseNodeId>1294446011</BrowseNodeId><名字>電視</名字></瀏覽節點><瀏覽節點><BrowseNodeId>6183893011</BrowseNodeId><名稱>電視調諧器和接收器</名稱></瀏覽節點></兒童><祖先><瀏覽節點><BrowseNodeId>1294447011</BrowseNodeId><名稱>電子</名稱><祖先><瀏覽節點><BrowseNodeId>1267878011</BrowseNodeId><名稱>產品</名稱><IsCategoryRoot>1</IsCategoryRoot><祖先><瀏覽節點><BrowseNodeId>1267877011</BrowseNodeId></瀏覽節點></祖先></瀏覽節點></祖先></瀏覽節點></祖先></瀏覽節點><瀏覽節點><BrowseNodeId>1293319011</BrowseNodeId><名稱>電子</名稱><祖先><瀏覽節點><BrowseNodeId>1267879011</BrowseNodeId><名稱>特殊功能</名稱><祖先><瀏覽節點><BrowseNodeId>1267877011</BrowseNodeId></瀏覽節點></祖先></瀏覽節點></祖先></瀏覽節點></瀏覽節點></項目></物品></ItemLookupResponse>
我正在嘗試使用 Javascript 將此數據格式化為 CSV 格式的表格.
有人可以幫忙嗎?
提前致謝!普拉尼
經過長時間的調查,我發現了一些可能對你有幫助的東西.
從重新發明輪子是如此愚蠢和耗時的任務開始,我一直在尋找其他優秀程序員已經在互聯網上構建的東西.
不幸的是,我無法找到一個直接將 XML 轉換為 CSV 的轉換器作為您在 PHP 中提供的示例.
在我的工作示例中,XML 必須首先從 JSON 傳遞,如下所示:
- xml2json => json2csv
我在這里和那里拿了一些片段,我將在此答案的末尾添加我實際用于構建演示的所有代碼片段的參考.通過這種方式,您將能夠獲得一個漂亮而干凈的文檔,這將有助于您改進此工具.
這里是一個簡單的演示:
function xmlTocsv() {var data = $("#xmlArea").val();var xml = "";if (data !== null && data.trim().length !== 0) {嘗試 {xml = $.parseXML(數據);} 抓住 (e) {扔 e;}var x2js = 新 X2JS();數據 = x2js.xml2json(xml);jsonTocsvbyjson(數據);}}函數 jsonTocsvbyjson(data, returnFlag) {arr = [];標志=真;變量頭 = "";變種內容=";var headFlag = true;嘗試 {var type1 = 數據類型;如果(類型1!=對象"){數據 = processJSON($.parseJSON(data));} 別的 {數據 = processJSON(數據);}} 抓住 (e) {if (returnFlag === undefined || !returnFlag) {console.error("轉換為 CSV 時出錯");} 別的 {console.error("轉換錯誤:" + e);}返回假;}$.each(數據,函數(k,值){如果 (k % 2 === 0) {如果(頭標志){如果(值!=結束"){標題+=值+,";} 別的 {//從字符串中刪除最后一個冒號header = header.substring(0, header.length - 1);頭旗 = 假;}}} 別的 {如果(值!=結束"){var temp = 數據[k - 1];if (header.search(temp) != -1) {內容+=價值+,";}} 別的 {//從字符串中刪除最后一個冒號內容 = content.substring(0, content.length - 1);內容 += "
";}}});if (returnFlag === undefined || !returnFlag) {$("#csvArea").val(header + "
" + content);} 別的 {返回(標題+
"+內容);}}函數處理JSON(數據){$.each(數據,函數(k,data1){var type1 = typeof data1;if (type1 == "object") {標志=假;處理JSON(數據1);arr.push("結束");arr.push("結束");} 別的 {arr.push(k, data1);}});返回 arr;}
<!DOCTYPE html><html><頭><script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js'></script><script type='text/javascript' src="https://cdn.rawgit.com/abdmob/x2js/master/xml2json.js"></script><script type="text/javascript" src="script.js"></script></頭><身體><h1>XML2CSV 演示</h1><按鈕 id="convertToXmlBtn" onclick="xmlTocsv()">XML =>CSV</按鈕><h4>XML:</h4><textarea id="xmlArea" cols="55" rows="15"></textarea></div><h4>CSV:</h4><textarea id="csvArea" cols="55" rows="15"></textarea></div></身體></html>參考資料:
- XML TO CSV 轉換器
- x2js - XML 到 JSON,反之亦然 JavaScript
實用程序:
- Working Plunkr
I am looking for some help trying to convert XML retrieved from Amazon Product API to convert it into CSV(Comma Separated Value) format.
I found a similar topic here: XML to CSV conversion issue but it uses PHP, and I want to use javascript instead.
Here is a sample of what I have:
<?xml version="1.0" encoding="UTF-8"?>
<ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2011-08-01">
<OperationRequest>
<RequestId>1k75f474-85ff-464a-al93-659ol460caee</RequestId>
<Arguments>
<Argument Name="Operation" Value="ItemLookup" />
<Argument Name="Service" Value="AWSECommerceService" />
<Argument Name="Signature" Value="lImNXr6R4c2t376ghMnMmjUPR4eY6755XzH41pXGH0P=" />
<Argument Name="AssociateTag" Value="oiuig-20" />
<Argument Name="ItemId" Value="B007EHI1DK" />
<Argument Name="AWSAccessKeyId" Value="DIY7F4M00OF6I7TRD3VA" />
<Argument Name="Timestamp" Value="2013-01-04T05:23:20Z" />
<Argument Name="ResponseGroup" Value="Large" />
</Arguments>
<RequestProcessingTime>0.0359500000000000</RequestProcessingTime>
</OperationRequest>
<Items>
<Request>
<IsValid>True</IsValid>
<ItemLookupRequest>
<IdType>ASIN</IdType>
<ItemId>B007EHI1DK</ItemId>
<ResponseGroup>Large</ResponseGroup>
<VariationPage>All</VariationPage>
</ItemLookupRequest>
</Request>
<Item>
<ASIN>B007EHI1DK</ASIN>
<DetailPageURL>http://www.amazon.com/Panasonic-TY-ER3D4MU-Active-Shutter-Eyewear/dp/B007EHI1DK%3FSubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB007EHI1DK</DetailPageURL>
<ItemLinks>
<ItemLink>
<Description>Technical Details</Description>
<URL>http://www.amazon.com/Panasonic-TY-ER3D4MU-Active-Shutter-Eyewear/dp/tech-data/B007EHI1DK%3FSubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK</URL>
</ItemLink>
<ItemLink>
<Description>Add To Baby Registry</Description>
<URL>http://www.amazon.com/gp/registry/baby/add-item.html%3Fasin.0%3DB007EHI1DK%26SubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK</URL>
</ItemLink>
<ItemLink>
<Description>Add To Wedding Registry</Description>
<URL>http://www.amazon.com/gp/registry/wedding/add-item.html%3Fasin.0%3DB007EHI1DK%26SubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK</URL>
</ItemLink>
<ItemLink>
<Description>Add To Wishlist</Description>
<URL>http://www.amazon.com/gp/registry/wishlist/add-item.html%3Fasin.0%3DB007EHI1DK%26SubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK</URL>
</ItemLink>
<ItemLink>
<Description>Tell A Friend</Description>
<URL>http://www.amazon.com/gp/pdp/taf/B007EHI1DK%3FSubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK</URL>
</ItemLink>
<ItemLink>
<Description>All Customer Reviews</Description>
<URL>http://www.amazon.com/review/product/B007EHI1DK%3FSubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK</URL>
</ItemLink>
<ItemLink>
<Description>All Offers</Description>
<URL>http://www.amazon.com/gp/offer-listing/B007EHI1DK%3FSubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK</URL>
</ItemLink>
</ItemLinks>
<SmallImage>
<URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL75_.jpg</URL>
<Height Units="pixels">50</Height>
<Width Units="pixels">75</Width>
</SmallImage>
<MediumImage>
<URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL160_.jpg</URL>
<Height Units="pixels">107</Height>
<Width Units="pixels">160</Width>
</MediumImage>
<LargeImage>
<URL>http://ecx.images-amazon.com/images/I/31pKDguukTL.jpg</URL>
<Height Units="pixels">333</Height>
<Width Units="pixels">500</Width>
</LargeImage>
<ImageSets>
<ImageSet Category="primary">
<SwatchImage>
<URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL30_.jpg</URL>
<Height Units="pixels">20</Height>
<Width Units="pixels">30</Width>
</SwatchImage>
<SmallImage>
<URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL75_.jpg</URL>
<Height Units="pixels">50</Height>
<Width Units="pixels">75</Width>
</SmallImage>
<ThumbnailImage>
<URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL75_.jpg</URL>
<Height Units="pixels">50</Height>
<Width Units="pixels">75</Width>
</ThumbnailImage>
<TinyImage>
<URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL110_.jpg</URL>
<Height Units="pixels">73</Height>
<Width Units="pixels">110</Width>
</TinyImage>
<MediumImage>
<URL>http://ecx.images-amazon.com/images/I/31pKDguukTL._SL160_.jpg</URL>
<Height Units="pixels">107</Height>
<Width Units="pixels">160</Width>
</MediumImage>
<LargeImage>
<URL>http://ecx.images-amazon.com/images/I/31pKDguukTL.jpg</URL>
<Height Units="pixels">333</Height>
<Width Units="pixels">500</Width>
</LargeImage>
</ImageSet>
<ImageSet Category="variant">
<SwatchImage>
<URL>http://ecx.images-amazon.com/images/I/31dSwH5PnjL._SL30_.jpg</URL>
<Height Units="pixels">20</Height>
<Width Units="pixels">30</Width>
</SwatchImage>
<SmallImage>
<URL>http://ecx.images-amazon.com/images/I/31dSwH5PnjL._SL75_.jpg</URL>
<Height Units="pixels">50</Height>
<Width Units="pixels">75</Width>
</SmallImage>
<ThumbnailImage>
<URL>http://ecx.images-amazon.com/images/I/31dSwH5PnjL._SL75_.jpg</URL>
<Height Units="pixels">50</Height>
<Width Units="pixels">75</Width>
</ThumbnailImage>
<TinyImage>
<URL>http://ecx.images-amazon.com/images/I/31dSwH5PnjL._SL110_.jpg</URL>
<Height Units="pixels">73</Height>
<Width Units="pixels">110</Width>
</TinyImage>
<MediumImage>
<URL>http://ecx.images-amazon.com/images/I/31dSwH5PnjL._SL160_.jpg</URL>
<Height Units="pixels">107</Height>
<Width Units="pixels">160</Width>
</MediumImage>
<LargeImage>
<URL>http://ecx.images-amazon.com/images/I/31dSwH5PnjL.jpg</URL>
<Height Units="pixels">333</Height>
<Width Units="pixels">500</Width>
</LargeImage>
</ImageSet>
<ImageSet Category="variant">
<SwatchImage>
<URL>http://ecx.images-amazon.com/images/I/31irEbzxdgL._SL30_.jpg</URL>
<Height Units="pixels">20</Height>
<Width Units="pixels">30</Width>
</SwatchImage>
<SmallImage>
<URL>http://ecx.images-amazon.com/images/I/31irEbzxdgL._SL75_.jpg</URL>
<Height Units="pixels">50</Height>
<Width Units="pixels">75</Width>
</SmallImage>
<ThumbnailImage>
<URL>http://ecx.images-amazon.com/images/I/31irEbzxdgL._SL75_.jpg</URL>
<Height Units="pixels">50</Height>
<Width Units="pixels">75</Width>
</ThumbnailImage>
<TinyImage>
<URL>http://ecx.images-amazon.com/images/I/31irEbzxdgL._SL110_.jpg</URL>
<Height Units="pixels">73</Height>
<Width Units="pixels">110</Width>
</TinyImage>
<MediumImage>
<URL>http://ecx.images-amazon.com/images/I/31irEbzxdgL._SL160_.jpg</URL>
<Height Units="pixels">107</Height>
<Width Units="pixels">160</Width>
</MediumImage>
<LargeImage>
<URL>http://ecx.images-amazon.com/images/I/31irEbzxdgL.jpg</URL>
<Height Units="pixels">333</Height>
<Width Units="pixels">500</Width>
</LargeImage>
</ImageSet>
</ImageSets>
<ItemAttributes>
<Binding>Electronics</Binding>
<Brand>Panasonic</Brand>
<CatalogNumberList>
<CatalogNumberListElement>TYER3D4M</CatalogNumberListElement>
<CatalogNumberListElement>TYER3D4MU</CatalogNumberListElement>
<CatalogNumberListElement>TY-ER3D4MU</CatalogNumberListElement>
</CatalogNumberList>
<Color>One Color</Color>
<Department>Electronics</Department>
<EAN>0885170075207</EAN>
<EANList>
<EANListElement>0885170075207</EANListElement>
</EANList>
<Feature>Lightweight Active Shutter 3D Eyewear</Feature>
<Feature>USB Rechargeable</Feature>
<Feature>RF Compatible</Feature>
<IsAutographed>0</IsAutographed>
<IsMemorabilia>0</IsMemorabilia>
<ItemDimensions>
<Height Units="hundredths-inches">170</Height>
<Length Units="hundredths-inches">340</Length>
<Weight Units="hundredths-pounds">10</Weight>
<Width Units="hundredths-inches">670</Width>
</ItemDimensions>
<Label>Panasonic</Label>
<ListPrice>
<Amount>7995</Amount>
<CurrencyCode>USD</CurrencyCode>
<FormattedPrice>$79.95</FormattedPrice>
</ListPrice>
<Manufacturer>Panasonic</Manufacturer>
<Model>TY-ER3D4MU</Model>
<MPN>TY-ER3D4MU</MPN>
<NumberOfItems>1</NumberOfItems>
<PackageDimensions>
<Height Units="hundredths-inches">240</Height>
<Length Units="hundredths-inches">690</Length>
<Weight Units="hundredths-pounds">30</Weight>
<Width Units="hundredths-inches">350</Width>
</PackageDimensions>
<PackageQuantity>1</PackageQuantity>
<PartNumber>TY-ER3D4MU</PartNumber>
<ProductGroup>CE</ProductGroup>
<ProductTypeName>CONSUMER_ELECTRONICS</ProductTypeName>
<Publisher>Panasonic</Publisher>
<Size>One Size</Size>
<SKU>292782</SKU>
<Studio>Panasonic</Studio>
<Title>Panasonic VIERA TY-ER3D4MU Active Shutter 3D Eyewear</Title>
<UPC>885170075207</UPC>
<UPCList>
<UPCListElement>885170075207</UPCListElement>
</UPCList>
</ItemAttributes>
<OfferSummary>
<LowestNewPrice>
<Amount>5400</Amount>
<CurrencyCode>USD</CurrencyCode>
<FormattedPrice>$54.00</FormattedPrice>
</LowestNewPrice>
<LowestUsedPrice>
<Amount>4294</Amount>
<CurrencyCode>USD</CurrencyCode>
<FormattedPrice>$42.94</FormattedPrice>
</LowestUsedPrice>
<TotalNew>24</TotalNew>
<TotalUsed>18</TotalUsed>
<TotalCollectible>0</TotalCollectible>
<TotalRefurbished>0</TotalRefurbished>
</OfferSummary>
<Offers>
<TotalOffers>1</TotalOffers>
<TotalOfferPages>1</TotalOfferPages>
<MoreOffersUrl>http://www.amazon.com/gp/offer-listing/B007EHI1DK%3FSubscriptionId%3DIY7F4M00OF6I7TRD3VAS%26tag%3Daztag-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007EHI1DK</MoreOffersUrl>
<Offer>
<OfferAttributes>
<Condition>New</Condition>
</OfferAttributes>
<OfferListing>
<OfferListingId>rkyW%2Bed7Qb8t28tJRRHkKizuk2CxNF4SI6W9XAnbXI8JX%2FJNpUY%2B8zqnnNRe3Vt2l%2B8rUMqypquQnAE66PYmf32dJeor6DifXvXKscwOqyrLwgFZORqmDg%3D%3D</OfferListingId>
<Price>
<Amount>5851</Amount>
<CurrencyCode>USD</CurrencyCode>
<FormattedPrice>$58.51</FormattedPrice>
</Price>
<AmountSaved>
<Amount>2144</Amount>
<CurrencyCode>USD</CurrencyCode>
<FormattedPrice>$21.44</FormattedPrice>
</AmountSaved>
<PercentageSaved>27</PercentageSaved>
<Availability>Usually ships in 24 hours</Availability>
<AvailabilityAttributes>
<AvailabilityType>now</AvailabilityType>
<MinimumHours>0</MinimumHours>
<MaximumHours>0</MaximumHours>
</AvailabilityAttributes>
<IsEligibleForSuperSaverShipping>1</IsEligibleForSuperSaverShipping>
</OfferListing>
</Offer>
</Offers>
<CustomerReviews>
<IFrameURL>http://www.amazon.com/reviews/iframe?akid=AKIAIBT3ANF6TOEOKXVA&alinkCode=xm2&asin=B007EHI1DK&atag=aztag-20&exp=2013-01-05T05%3A23%3A21Z&v=2&sig=yz1U1nT8mWjFGauK3umnsOqp9BTzWwGOAAiLCyZ%2BEPM%3D</IFrameURL>
<HasReviews>true</HasReviews>
</CustomerReviews>
<EditorialReviews>
<EditorialReview>
<Source>Product Description</Source>
<Content><strong>3D Playback Type:</strong> Active Shutter 3D Method<br /><strong>Transmittance Method:</strong> RF (Bluetooth)/ Full HD 3D Glasses Standard Compatible<br /><strong>Battery Type: </strong>Lithium-ion Polymer Rechargeable Battery<br /><strong>Battery Duration:</strong> Approximately 30 hours of operation for a 30-minute full battery charge (Approximately 3 hours of operation for a 2-minute battery charge)<em> *The battery duration will change as per the total usage time with the number of charge/discharge cycles </em><br /><strong>Package Included:</strong> 1 Pair of Eyewear <br />Note: These glasses are only compatible with 2012 VIERA HDTVs<br /><br /> <div style="text-align: left;"><strong>Accessory Compatibility Chart<br /></strong></div> <img height="375" src="http://g-ecx.images-amazon.com/images/G/01/electronics/Cat500/Panasonic/2012/accessory_compatibility_2._V138249826_.gif" width="650" /><br /><br /></Content>
<IsLinkSuppressed>0</IsLinkSuppressed>
</EditorialReview>
</EditorialReviews>
<SimilarProducts>
<SimilarProduct>
<ASIN>B007K9P7H0</ASIN>
<Title>Samsung SSG-4100GB 3D Active Glasses 2012 Models - Black</Title>
</SimilarProduct>
<SimilarProduct>
<ASIN>B00752VKSC</ASIN>
<Title>Panasonic VIERA TC-P55ST50 55-Inch 1080p 600Hz Full HD 3D Plasma TV</Title>
</SimilarProduct>
<SimilarProduct>
<ASIN>B00752R4PK</ASIN>
<Title>Panasonic DMP-BDT220 Integrated Wi-Fi 3D Blu-ray DVD Player</Title>
</SimilarProduct>
<SimilarProduct>
<ASIN>B00752VKFA</ASIN>
<Title>Panasonic VIERA TC-P55GT50 55-Inch 1080p 600Hz Full HD 3D Plasma TV</Title>
</SimilarProduct>
<SimilarProduct>
<ASIN>B00752VL8G</ASIN>
<Title>Panasonic VIERA TC-P60GT50 60-Inch 1080p 600Hz Full HD 3D Plasma TV</Title>
</SimilarProduct>
</SimilarProducts>
<BrowseNodes>
<BrowseNode>
<BrowseNodeId>3224438011</BrowseNodeId>
<Name>3D Glasses</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>172532</BrowseNodeId>
<Name>Audio & Video Accessories</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>281407</BrowseNodeId>
<Name>Accessories & Supplies</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>493964</BrowseNodeId>
<Name>Categories</Name>
<IsCategoryRoot>1</IsCategoryRoot>
<Ancestors>
<BrowseNode>
<BrowseNodeId>172282</BrowseNodeId>
<Name>Electronics</Name>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
<BrowseNode>
<BrowseNodeId>1288264011</BrowseNodeId>
<Name>All product</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>1267878011</BrowseNodeId>
<Name>Products</Name>
<IsCategoryRoot>1</IsCategoryRoot>
<Ancestors>
<BrowseNode>
<BrowseNodeId>1267877011</BrowseNodeId>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
<BrowseNode>
<BrowseNodeId>3545110011</BrowseNodeId>
<Name>Home Entertainment</Name>
<Children>
<BrowseNode>
<BrowseNodeId>3547652011</BrowseNodeId>
<Name>Blu-Ray Players</Name>
</BrowseNode>
<BrowseNode>
<BrowseNodeId>3547650011</BrowseNodeId>
<Name>DVD Players</Name>
</BrowseNode>
<BrowseNode>
<BrowseNodeId>6183878011</BrowseNodeId>
<Name>Home Theater Projectors</Name>
</BrowseNode>
<BrowseNode>
<BrowseNodeId>1294446011</BrowseNodeId>
<Name>Televisions</Name>
</BrowseNode>
<BrowseNode>
<BrowseNodeId>6183893011</BrowseNodeId>
<Name>Television Tuners and Receivers</Name>
</BrowseNode>
</Children>
<Ancestors>
<BrowseNode>
<BrowseNodeId>1294447011</BrowseNodeId>
<Name>Electronics</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>1267878011</BrowseNodeId>
<Name>Products</Name>
<IsCategoryRoot>1</IsCategoryRoot>
<Ancestors>
<BrowseNode>
<BrowseNodeId>1267877011</BrowseNodeId>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
<BrowseNode>
<BrowseNodeId>1293319011</BrowseNodeId>
<Name>Electronics</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>1267879011</BrowseNodeId>
<Name>Special Features</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>1267877011</BrowseNodeId>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</BrowseNodes>
</Item>
</Items>
</ItemLookupResponse>
I am trying to format this data into a CSV formated table using Javascript.
Can someone please help?
Thanks in advance!
Praney
解決方案 After a long investigation i found out something that may help you.
Starting from the point that reinventing the wheel is such a stupid and time consuming task, i was looking for what other good programmers have already built out there on the internet.
Unfortunately I wasn't able to find out a direct converter form XML to CSV as the example you provide in PHP.
In my working example the XML have to pass from JSON first like this:
- xml2json => json2csv
I took some pieces here and there and i will add the references of where i actually took all the code snippet i use for build the demo at the end of this answer. In this way you will be able to get a nice and clean documentation that will help you to improve this tool.
Here a simple demo:
function xmlTocsv() {
var data = $("#xmlArea").val();
var xml = "";
if (data !== null && data.trim().length !== 0) {
try {
xml = $.parseXML(data);
} catch (e) {
throw e;
}
var x2js = new X2JS();
data = x2js.xml2json(xml);
jsonTocsvbyjson(data);
}
}
function jsonTocsvbyjson(data, returnFlag) {
arr = [];
flag = true;
var header = "";
var content = "";
var headFlag = true;
try {
var type1 = typeof data;
if (type1 != "object") {
data = processJSON($.parseJSON(data));
} else {
data = processJSON(data);
}
} catch (e) {
if (returnFlag === undefined || !returnFlag) {
console.error("Error in Convert to CSV");
} else {
console.error("Error in Convert :" + e);
}
return false;
}
$.each(data, function(k, value) {
if (k % 2 === 0) {
if (headFlag) {
if (value != "end") {
header += value + ",";
} else {
// remove last colon from string
header = header.substring(0, header.length - 1);
headFlag = false;
}
}
} else {
if (value != "end") {
var temp = data[k - 1];
if (header.search(temp) != -1) {
content += value + ",";
}
} else {
// remove last colon from string
content = content.substring(0, content.length - 1);
content += "
";
}
}
});
if (returnFlag === undefined || !returnFlag) {
$("#csvArea").val(header + "
" + content);
} else {
return (header + "
" + content);
}
}
function processJSON(data) {
$.each(data, function(k, data1) {
var type1 = typeof data1;
if (type1 == "object") {
flag = false;
processJSON(data1);
arr.push("end");
arr.push("end");
} else {
arr.push(k, data1);
}
});
return arr;
}
<!DOCTYPE html>
<html>
<head>
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js'></script>
<script type='text/javascript' src="https://cdn.rawgit.com/abdmob/x2js/master/xml2json.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1>XML2CSV Demo</h1>
<button id="convertToXmlBtn" onclick="xmlTocsv()">XML => CSV</button>
<div>
<h4>XML:</h4>
<textarea id="xmlArea" cols="55" rows="15"></textarea>
</div>
<div>
<h4>CSV:</h4>
<textarea id="csvArea" cols="55" rows="15"></textarea>
</div>
</body>
</html>
References:
- XML TO CSV Converter
- x2js - XML to JSON and vice versa for JavaScript
Utils:
- Working Plunkr
這篇關于使用 Javascript 將 XML 轉換為 CSV的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!