iphone - 在 iOS 中解析 Intuit XML 响应

标签 iphone objective-c ios ipad cocoa

我正在尝试解析 XML 格式的 REST 响应。关于响应的有趣之处在于多个节点具有相同的名称。我正在寻找一种简单的方法来在 iOS 中解析这些数据。这是一个示例:

<Report name="BalanceSheet">
<ColDesc><ColTitle>AccountType</ColTitle><ColType>ids_String</ColType></ColDesc>
<ColDesc><ColTitle>Amount</ColTitle><ColType>ids_Amount</ColType></ColDesc>
<Data>
<DataRow>
<ColData>Checking/Savings</ColData>
<ColData>12345345</ColData>
</DataRow>
<DataRow>
<ColData>Accounts Receivable</ColData>
<ColData>674532</ColData>
</DataRow>
<DataRow>
<ColData>Other Current Assets</ColData>
<ColData>423546</ColData>
</DataRow>
<DataRow>
<ColData>Fixed Assets</ColData>
<ColData>63545534</ColData>
</DataRow>
<DataRow>
<ColData>Other Assets</ColData>
<ColData>325465</ColData>
</DataRow>
<DataRow>
<ColData>Accounts Payable</ColData>
<ColData>653653</ColData>
</DataRow>
<DataRow>
<ColData>Other Current Liabilities</ColData>
<ColData>910596.75</ColData>
</DataRow>
<DataRow>
<ColData>Long Term Liabilities</ColData>
<ColData>553797.26</ColData>
</DataRow>
<DataRow>
<ColData>Equity</ColData>
<ColData>45363</ColData>
</DataRow>
</Data>
</Report>

我尝试使用 SMXMLDocument 解析器,并尝试使用 XMLReader 将其转换为 NSDictionary。 XML 的结构方式非常令人困惑。

有什么建议吗?

最佳答案

它看起来像是到数据库表(甚至可能是 Excel 电子表格)的映射。您似乎获得了 2 个列名称。其次是数据,其中<Data>包含属于各个行的数据。

<Report name="BalanceSheet">
        <ColDesc>
            <ColTitle>
                AccountType
            </ColTitle>
            <ColType>
                ids_String
            </ColType>
        </ColDesc>
        <ColDesc>
            <ColTitle>
                Amount
            </ColTitle>
            <ColType>
                ids_Amount
            </ColType>
        </ColDesc>
    <Data>
        <DataRow>
            <ColData>
                Checking/Savings
            </ColData>
            <ColData>
                12345345
            </ColData>
        </DataRow>
        <DataRow>
            <ColData>
                Accounts Receivable
            </ColData>
            <ColData>
                674532
            </ColData>
        </DataRow>
        <DataRow>
            <ColData>
                Other Current Assets
            </ColData>
            <ColData>
                423546
            </ColData>
        </DataRow>
        <DataRow>
            <ColData>
                Fixed Assets
            </ColData>
            <ColData>
                63545534
            </ColData>
        </DataRow>
    </Data>
    </Report>


AccountType         | Amount
--------------------------------
Checking/Savings    | 12345345
Accounts Receivable | 674532

决定使用哪个解析器将取决于您的需要,但是描述如何使用每个解析器会在这里占用太多空间。 This article描述不同类型的解析器以及如何使用每种解析器。由于这个结构看起来非常简单,我倾向于使用 NSXMLParser (Apple Docs)。

关于iphone - 在 iOS 中解析 Intuit XML 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13260491/

相关文章:

iphone - 将 RSS 提要导入 Core Data 时防止重复

ios - UILabel 文本对齐不起作用(Swift 4)

ios - 在 Swift 中以编程方式在两个 subview 之间添加约束

ios - 如何在一个类中实现两个相同类型的委托(delegate)?

ios - 更改标签栏背景透明度

javascript - TitaniumStudio 不更新新文件

iphone - 如何使用线程为每一行自动调用一个函数

iphone - iOS:一个动画之后,所有其他 View 开始动画

ios - 如何在 NSUserDefaults 中存储自定义对象

iphone - NSPredicate 来查明实体的实例是否有父代?