如何在swift中获取数组和xml文件

时间:2016-09-03 15:07:49

标签: arrays xml swift

我是swift的新手,但我已经制作了一个Android应用程序,其中从xml文件中选择了一个字符串数组。这是一个包含大量字符串数组的大型xml文件,应用程序根据用户选择获取相关的字符串数组。

我现在正尝试使用swift为iOS开发相同的应用程序。我想使用相同的xml文件,但我看不到和简单的方法来获得正确的数组。例如,xml的一部分看起来像这样

 <string-array name="OCR_Businessstudies_A_Topics">
    <item>1. Business objectives and strategic decisions</item>
    <item>2. External influences facing businesses</item>
    <item>3. Marketing and marketing strategies</item>
    <item>4. Operational strategy</item>
    <item>5. Human resources</item>
    <item>6. Accounting and financial considerations</item>
    <item>7. The global environment of business</item>
</string-array>

<string-array name="OCR_Businessstudies_AS_Topics">
    <item>1. Business objectives and strategic decisions</item>
    <item>2. External influences facing businesses</item>
    <item>3. Marketing and marketing strategies</item>
    <item>4. Operational strategy</item>
    <item>5. Human resources</item>
    <item>6. Accounting and financial considerations</item>
</string-array>

如果我有字符串&#34; OCR_Businessstudies_A_Topics&#34;我如何得到&#34; OCR_Businessstudies_A_Topics&#34;来自xml文件的数组。

这在android中是非常直接的,虽然我已经使用了swift的在线教程,但似乎我必须解析xml文件,但似乎没有到达任何地方。

有没有比尝试解析整个xml fie更好的方法?

由于

百里

1 个答案:

答案 0 :(得分:0)

您可以编写自己的XML解析器,符合NSXMLParser或使用HTMLReader之类的库:

let fileURL = NSBundle.mainBundle().URLForResource("data", withExtension: "xml")!
let xmlData = NSData(contentsOfURL: fileURL)!
let topic = "OCR_Businessstudies_A_Topics"

let document = HTMLDocument(data: xmlData, contentTypeHeader: "text/xml")
for item in document.nodesMatchingSelector("string-array[name='\(topic)'] item") {
    print(item.textContent)
}