我正在使用位于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