【问题标题】:retrieve xml file using nsxmlparser in ios在 ios 中使用 nsxmlparser 检索 xml 文件
【发布时间】:2013-04-05 07:25:36
【问题描述】:

我在 ios 中通过 nsxmlparser 读取 xml 文件时遇到问题,

<PRODUCTS>
    <PRODUCTSLIST>
        <PRODUCTDETAILS>
                <headertext> test header </headertext>
                <description><b style="font-size: x-small;">product, advantages</b></description>
        </PRODUCTDETAILS>
    </PRODUCTSLIST>
</PRODUCTS>

当我使用 nsxmlparser 读取文件时,我能够获取 headertext 的值(测试标头),但 description 属性值包含 html 标签,因此我无法获取结果(&lt;b style="font-size: x-small;"&gt;product, advantages&lt;/b&gt;)我得到的结果为空 我怎样才能得到 description 属性的结果为((&lt;b style="font-size: x-small;"&gt;product, advantages&lt;/b&gt;))?

【问题讨论】:

    标签: ios objective-c xml-parsing


    【解决方案1】:

    从开发人员的角度来看,我不建议使用 NSXMLParser,因为它解析 XML 文件的方式很费力。关于choosing the right XML Parser 有一篇很棒的文章。

    我经常使用KissXML。 您可以找到使用它的退出教程here

    希望这会有所帮助。

    【讨论】:

    • “小”文件没问题。但是 DOM 解析器会占用大量内存
    • 我将它用于大于 4000 行的文件,效果很好。但我只用它来解析数据并将其存储到CoreData中。
    • 读取 xml 文件,如果我使用 KissXml,我最多只有 50 条记录,这意味着它有这么多的类文件和内存......
    • 4000 行很小....这就是我说“小”的原因——我在网络爬虫中使用 KissXML,它 很棒 但是当你必须处理10 MB+ 范围内的 XML ......它可能不太适合 - 哦,相比之下它很慢!
    【解决方案2】:

    您的问题是“b”标签被认为是 XML 结构的一部分,请尝试转义“b”标签的“”字符:
    @"&amp;lt;b style=\"font-size: x-small;&amp;gt;product, advantages&amp;lt;/b&amp;gt;"
    see here

    【讨论】:

    • 该描述属性来自服务,因此该列具有动态值....如果粗体我们可以尝试这样假设字体和其他标签出现意味着我该如何管理..
    猜你喜欢
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2011-08-14
    • 2013-02-16
    • 2011-02-27
    • 2016-02-10
    • 2012-10-19
    相关资源
    最近更新 更多