我正在使用位于Here的 Swift xml 解析器库。我希望从以下具有特定值的 XML 中获取特定值。
下面的 XML 显示了设备上安装的应用程序列表,然后列出了有关每个应用程序的信息;比如版本和应用大小。每个<deviceSw>
都是设备上的不同应用程序。我希望从 com.fiberlink.browser 应用程序中获取版本值。旁注是我不能只在设备上获取第二个应用程序,因为某些设备可能会将 com.fiberlink.browser 列为第三个应用程序或第四个应用程序。有没有办法通过 XML 对 com.fiberlink.browser 的值进行排序,然后获取它的 Version 值?
<?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>
编辑:
我已经尝试使用下面的代码来循环遍历键,并且可能会执行逻辑进行排序,但它返回 nil 值。
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)
}
什么都没有打印出来,它只是一个空白的输出窗口。