0
我試圖從scala.xml.XML解析來自AWIS(alexa rest apis from amazon)的xml響應,沒有任何成功。用scala解析xml
XML響應:
<?xml version="1.0"?>
<aws:TrafficHistoryResponse xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/"><aws:Response xmlns:aws="http://awis.amazonaws.com/doc/2005-07-11"><aws:OperationRequest><aws:RequestId>aef82596-5d7b-c72a-b97c-f31de4aedcf5</aws:RequestId></aws:OperationRequest><aws:TrafficHistoryResult><aws:Alexa>
<aws:TrafficHistory>
<aws:Range>7</aws:Range>
<aws:Site>yahoo.com</aws:Site>
<aws:Start>2015-10-30</aws:Start>
<aws:HistoricalData>
<aws:Data>
<aws:Date>2015-10-30</aws:Date>
<aws:PageViews>
<aws:PerMillion>10800</aws:PerMillion>
<aws:PerUser>7.33</aws:PerUser>
</aws:PageViews>
<aws:Rank>5</aws:Rank>
<aws:Reach>
<aws:PerMillion>130500</aws:PerMillion>
</aws:Reach>
</aws:Data>
<aws:Data>
<aws:Date>2015-10-31</aws:Date>
<aws:PageViews>
<aws:PerMillion>10790</aws:PerMillion>
<aws:PerUser>6.85</aws:PerUser>
</aws:PageViews>
<aws:Rank>5</aws:Rank>
<aws:Reach>
<aws:PerMillion>129100</aws:PerMillion>
</aws:Reach>
</aws:Data>
<aws:Data>
<aws:Date>2015-11-01</aws:Date>
<aws:PageViews>
<aws:PerMillion>10960</aws:PerMillion>
<aws:PerUser>6.84</aws:PerUser>
</aws:PageViews>
<aws:Rank>5</aws:Rank>
<aws:Reach>
<aws:PerMillion>132500</aws:PerMillion>
</aws:Reach>
</aws:Data>
<aws:Data>
<aws:Date>2015-11-02</aws:Date>
<aws:PageViews>
<aws:PerMillion>11180</aws:PerMillion>
<aws:PerUser>7.57</aws:PerUser>
</aws:PageViews>
<aws:Rank>5</aws:Rank>
<aws:Reach>
<aws:PerMillion>134800</aws:PerMillion>
</aws:Reach>
</aws:Data>
<aws:Data>
<aws:Date>2015-11-03</aws:Date>
<aws:PageViews>
<aws:PerMillion>11290</aws:PerMillion>
<aws:PerUser>7.70</aws:PerUser>
</aws:PageViews>
<aws:Rank>5</aws:Rank>
<aws:Reach>
<aws:PerMillion>133900</aws:PerMillion>
</aws:Reach>
</aws:Data>
<aws:Data>
<aws:Date>2015-11-04</aws:Date>
<aws:PageViews>
<aws:PerMillion>11310</aws:PerMillion>
<aws:PerUser>7.76</aws:PerUser>
</aws:PageViews>
<aws:Rank>5</aws:Rank>
<aws:Reach>
<aws:PerMillion>133400</aws:PerMillion>
</aws:Reach>
</aws:Data>
<aws:Data>
<aws:Date>2015-11-05</aws:Date>
<aws:PageViews>
<aws:PerMillion>11430</aws:PerMillion>
<aws:PerUser>7.74</aws:PerUser>
</aws:PageViews>
<aws:Rank>5</aws:Rank>
<aws:Reach>
<aws:PerMillion>133300</aws:PerMillion>
</aws:Reach>
</aws:Data>
</aws:HistoricalData>
</aws:TrafficHistory>
</aws:Alexa></aws:TrafficHistoryResult><aws:ResponseStatus xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/"><aws:StatusCode>Success</aws:StatusCode></aws:ResponseStatus></aws:Response></aws:TrafficHistoryResponse>
的處理代碼:
val xml = XML.loadString(response.body)
val response = xml \ "aws:Response"
val data = xml \\ "aws:Data"
既響應和數據返回空nodesequences。 我想這可能與命名空間有關。
任何指針如何解決這個問題將不勝感激。 TIA
感謝。那就是訣竅 –