在 Swift 中解析 XML 自结束标签一些随机书

问题描述 投票:0回答:1

我有一个包含以下数据的 XML 文件:

<Book>
    <title>Some Random Book</title>
        <author>Someone Someone</author>
        <book_type>
            <FICT />
            <REF />
        </book_type>
</Book>

我正在尝试为其编写一个结构,但我不确定如何处理“book_type”内的自关闭标签。这些是枚举吗?并非所有书籍都有“book_type”,如果有,可能会有不止一本,如上例所示。

这是我所拥有的,不确定这是否正确:

struct Book {
    var title: String?
    var author: String?
    var book_type: BookType?
}

enum BookType {
    case fiction
    case nonfiction     
    case reference
    case autobiography  
}

谢谢!

ios swift xml xml-parsing
1个回答
0
投票

XML中的每个标签都可以被视为代表一个对象。在这种情况下,

Book
是一个具有多个属性的复杂对象。
title
author
是简单对象,可以用现有数据类型(字符串)表示。从示例来看,
Book
可以有多种书籍类型,因此
book_type
可以表示为数组。这可以是字符串或枚举的数组,这取决于您以及如何在代码中的其他地方使用这些值。

对于自闭合标签,我认为标签名称通常代表属性名称,而不是标签的值。自关闭标签类似于具有默认值的对象。在有多个值的情况下,很难看出差异,因为您没有为列表中的项目命名。

我组织 XML 数据的方式类似于:

<Book>
    <title>Some Random Book</title>
    <author>Someone Someone</author>
    <book_type>
        <type>FICT</type>
        <type>REF</type>
    </book_type>
</Book>

以及 Swift 模型结构:

struct Book {
    var title: String?
    var author: String?
    var book_type: [BookType]
}

enum BookType {
    case fiction
    case nonfiction     
    case reference
    case autobiography  
}

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.