我正在使用位於Here的Swift xml解析器庫。我期望從具有一定價值的下面的XML中獲得具體的價值。從XML響應中獲取價值Swift
下面的XML顯示了設備上安裝的應用程序列表,然後列出了有關每個應用程序的信息;像版本和應用程序大小。每個<deviceSw>
是設備上的一個不同的應用程序。我期待從 com.fiberlink.browser應用程序獲取版本值。值得注意的是,我不能僅僅獲得設備上的第二個應用程序,因爲有些設備可能會將com.fiberlink.browser列爲第三個應用程序或第四個應用程序。有沒有辦法通過XML對com.fiberlink.browser的值進行排序,然後獲取其版本值?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<deviceSoftwares>
<deviceSw>
<swAttrs>
<key>Application ID</key>
<type>string</type>
<value>com.fiberlink.maas360forios</value>
</swAttrs>
<swAttrs>
<key>Version</key>
<type>string</type>
<value>2.40.60</value>
</swAttrs>
<swAttrs>
<key>AppDataSize</key>
<type>string</type>
<value>2.09</value>
</swAttrs>
</deviceSw>
<deviceSw>
<swAttrs>
<key>Application ID</key>
<type>string</type>
<value>com.fiberlink.browser</value>
</swAttrs>
<swAttrs>
<key>Version</key>
<type>string</type>
<value>1.30.45</value>
</swAttrs>
<swAttrs>
<key>AppDataSize</key>
<type>string</type>
<value>0.51</value>
</swAttrs>
</deviceSw>
編輯:
我曾嘗試下面的代碼,通過密鑰環,也許你的邏輯排序後通過但它返回零值。
for elem in xml["deviceSoftwares"]["deviceSw"].all {
print(elem["swAttrs"]["key"].element!.text!)
}
編輯2:
我改變了我的代碼如下:
for elem in xml["deviceSoftwares"]["deviceSw"]["swAttrs"].all
{
print(elem["key"].element!.text)
}
並沒有什麼打印出來,它只是一個空白的輸出窗口。
更新問題由你試過。 –
已添加到原始問題中 – Martheli