【问题标题】:iPhone SDK XML Parsing Attribute VS Nested elementsiPhone SDK XML 解析属性 VS 嵌套元素
【发布时间】:2011-01-11 15:42:14
【问题描述】:

我在使用带有 iphone sdk 的 XML 解析器时遇到了一些性能问题。我尝试直接使用 LibXML 解析器和 NSXMLParser,但我得到了相同的结果。 现在我正在寻找可以提高解析性能的东西。 将属性移动到嵌套元素可以使其更快?

我有一个这样的 XML 源文件:

事件>

我必须创建嵌套树吗?比如下面的?它会提高性能吗?

测试1名称> 描述20/01/2010日期> http://remoteurl.../foo.png事件> 事件>

非常感谢, 保罗

【问题讨论】:

标签: iphone performance parsing nsxmlparser libxml2


【解决方案1】:

我不完全确定你的意思。我可能没有正确理解您,但这是我在程序中所做的。

假设你有一个这样的文件:

<document>

 <person>
  <name>bob</name>
  <phone>555-5555</phone>
   <vehicle>
    <color>blue</color>
    <type>truck</truck>
   </vehicle>
 </person>

 <person>
  <name>jan</name>
  <phone>444-5555</phone>
   <vehicle>
    <color>red</color>
    <type>car</truck>
   </vehicle>
 </person>

</document>

当您点击人员标签时,假设您要创建一个人员对象。因此,您创建了该人员对象,并让它解析人员标签内的 xml。为此,您可以使 person 对象成为该对象的新委托。当人员对象发现关闭人员标签时,它可以重置委托。我还继续在原始委托上重新调用了相同的方法。我从here 得到这个想法。您也可以按照车辆标签执行相同的操作。我相信你能理解我现在的意思。

我认为这提高了效率的原因是,与其创建一堆元素并退回到堆栈中(比如当您看到有人检查您的文档是否在此之前)。我想你可以假设当你看到一个人标签时,你是一个人,但如果你想安全起见,检查很重要。这种方式也更加模块化。我认为由于字符串比较的减少性能会有所提高。它的代码也更优雅。

如果这不是您正在寻找的答案,您能否提供一些细节。谢谢,编码愉快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多