2011-03-18 42 views
0

我目前正在開發一個android程序。經過一番搜索後,我似乎無法找到解決方案來獲取或請求在我的android程序中使用XML。在Android程序中獲取XML

我仍然處於程序的早期階段。我可以顯示我將要使用的xml代碼。它基本上是使用用戶名和密碼來請求數據。我想要使​​用這些數據,以便用戶可以在文本/輸入框中使用MonitoringRef標識符,並通過XML請求接收數據並將其呈現在應用程序中。

的請求將包括:在XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
10 - 11 
Kizoom Traveline API at 03/09/2010 
<Siri version="1.0" xmlns="http://www.siri.org.uk/"> 
<ServiceDelivery> 
<ResponseTimestamp>2007-05-22T14:39:04+01:00</ResponseTimestamp> 
<StopMonitoringDelivery version="1.0"> 
<ResponseTimestamp>2007-05- 
22T14:39:04+01:00</ResponseTimestamp> 
<RequestMessageRef>12345</RequestMessageRef> 
<MonitoredStopVisit> 
<RecordedAtTime>2007-05-22T14:39:03+01:00</RecordedAtTime> 
<MonitoringRef>leiadadg</MonitoringRef> 
<MonitoredVehicleJourney> 
<FramedVehicleJourneyRef> 
<DataFrameRef>-</DataFrameRef> 
<DatedVehicleJourneyRef>-</DatedVehicleJourneyRef> 
</FramedVehicleJourneyRef> 
<VehicleMode>bus</VehicleMode> 
<PublishedLineName>22</PublishedLineName> 
<DirectionName>Norwich: Rail Station 
Forecourt</DirectionName> 
<MonitoredCall> 
<AimedDepartureTime>2007-05- 
22T14:53:00+01:00</AimedDepartureTime> 
<ExpectedDepartureTime>2007-05- 
22T14:55:00+01:00</ExpectedDepartureTime> 
</MonitoredCall> 
</MonitoredVehicleJourney> 
</MonitoredStopVisit> 
</StopMonitoringDelivery> 
<StopMonitoringDelivery version="1.0"> 
<ResponseTimestamp>2007-05- 
22T14:39:04+01:00</ResponseTimestamp> 
<RequestMessageRef>67890</RequestMessageRef> 
<MonitoredStopVisit> 
<RecordedAtTime>2007-05-22T14:39:03+01:00</RecordedAtTime> 
<MonitoringRef>260057046</MonitoringRef> 
<MonitoredVehicleJourney> 
<FramedVehicleJourneyRef> 
<DataFrameRef>-</DataFrameRef> 
<DatedVehicleJourneyRef>-</DatedVehicleJourneyRef> 
</FramedVehicleJourneyRef> 
<VehicleMode>bus</VehicleMode> 
<PublishedLineName>3</PublishedLineName> 
<DirectionName>Norwich: Ber Street John 
Lewis</DirectionName> 
<MonitoredCall> 
<AimedDepartureTime>2007-05- 
22T14:53:00+01:00</AimedDepartureTime> 
<ExpectedDepartureTime>2007-05- 
22T14:57:00+01:00</ExpectedDepartureTime> 
</MonitoredCall> 
</MonitoredVehicleJourney> 
</MonitoredStopVisit> 
<MonitoredStopVisit> 
<RecordedAtTime>2007-05-22T14:39:03+01:00</RecordedAtTime> 
<MonitoringRef>260057046</MonitoringRef> 
<MonitoredVehicleJourney> 
<FramedVehicleJourneyRef> 
<DataFrameRef>-</DataFrameRef> 
<DatedVehicleJourneyRef>-</DatedVehicleJourneyRef> 
</FramedVehicleJourneyRef> 
<VehicleMode>bus</VehicleMode> 
<PublishedLineName>18</PublishedLineName> 
<DirectionName>Old Catton: White Woman Lane/Proctor 
Rd</DirectionName> 
<MonitoredCall> 
<AimedDepartureTime>2007-05- 
22T14:57:00+01:00</AimedDepartureTime> 
</MonitoredCall> 
</MonitoredVehicleJourney> 
</MonitoredStopVisit> 
</StopMonitoringDelivery> 
</ServiceDelivery> 
</Siri> 

元素::

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Siri version="1.0" xmlns="http://www.siri.org.uk/"> 
<ServiceRequest> 
<RequestTimestamp>2007-01-11T10:38:12Z</RequestTimestamp> 
<RequestorRef>CLIENT_APP_ID</RequestorRef> 
<StopMonitoringRequest version="1.0"> 
<RequestTimestamp>2007-01-11T10:38:12Z</RequestTimestamp> 
<MessageIdentifier>67890</MessageIdentifier> 
<MonitoringRef>260057046</MonitoringRef> 
</StopMonitoringRequest> 
</ServiceRequest> 
</Siri> 

的響應將包括

  • StopMonitoringDelivery -present爲 每個StopMonitoringRequest在 要求
  • RequestMessageRef - 對應於請求
  • MonitoringRef MessageIdentifier - 指示哪個總線 停止此StopMonitoringDelivery 涉及
  • MonitoredStopVisit - 表示 單個總線出發
  • PublishedLineName -service名稱
  • DirectionName - 目的地
  • AimedDepartureTime -scheduled 出發時間
  • ExpectedDepartureTime -estimated 發車時間

我只是想知道如果有人能提供給我的資源或解決方案在應用程序中提供了這一點。

回答

1

您可以使用DefaultHttpClientHttpPost/HttpGet類通過HTTP協議與遠程服務進行交互。

要解析來自字符串響應的XML文檔,您可以使用DocumentBuilder.parse method 它將向您提供要使用的W3C Document Object Model的實現。另外,您需要使用一些序列化工具來準備XML文檔的字符串表示形式(作爲響應發送)。該解決方案取決於您的應用程序的最小SDK版本。使用API​​級別8,您可以使用LSSerializer來執行此操作。

+0

非常感謝你!我會更深入地研究你提到的那些領域。 – 2011-03-18 20:41:37