2011-04-05 38 views
0

您好我是我的XML PULL PARSER解析我的回应作为响应它太大,约6MB的大小。该响应包含多个名称标签。我怎样才能解析字符串标签分别为各自的名称标签。我的回应是:如何分析一个xml响应与多个名称标记在它


<?xml version="1.0" encoding="ISO-8859-1" ?> 
- <methodResponse> 
- <params> 
- <param> 
- <value> 
- <array> 
- <data> 
- <value> 
    <int>7</int> 
    </value> 
- <value> 
- <struct> 
- <member> 
    <name>AdURLs</name> 
- <value> 
- <struct> 
- <member> 
    <name>small</name> 
- <value> 
- <array> 
- <data> 
- <value> 
    <string>http://www.jumptap.com/images/cg-windowshade-collapsed.jpg</string> 
    </value> 
- <value> 
    <string>http://mobilesitelinkexchange.com/images/stories/320x50mobile_standard.gif</string> 
    </value> 
    </data> 
    </array> 
    </value> 
    </member> 
- <member> 
    <name>large</name> 
- <value> 
- <array> 
- <data> 
- <value> 
    <string>http://4.bp.blogspot.com/_5pkoVwxuN90/S-RpGWWgshI/AAAAAAAACoU/HlB9I5WOo4g/s400/iphone_jd1003.jpg</string> 
    </value> 
- <value> 
    <string>http://3.bp.blogspot.com/_5pkoVwxuN90/S_vW6bHZgMI/AAAAAAAACqs/CpQ05gcYtTA/s320/iphone-ps5032.jpg</string> 
    </value> 
    </data> 
    </array> 
    </value> 
    </member> 
- <member> 
    <name>medium</name> 
- <value> 
- <array> 
- <data> 
- <value> 
    <string>http://upload.wikimedia.org/wikipedia/en/b/be/Ads-300x250.gif</string> 
    </value> 
- <value> 
    <string>http://www.wrestling-online.com/images/ads/300x250/nomercy2008.jpg</string> 
    </value> 
    </data> 
    </array> 
    </value> 
    </member> 
    </struct> 
    </value> 
    </member> 
+0

哎哟,你只要复制从Internet Explorer XML?馊主意。以文本形式打开XML文件,将其复制并粘贴到编辑器中,然后按下'{}'按钮将其格式化为代码并保留标签。 – 2011-04-05 11:13:05

+0

我想要一个数组列表中的名称值很小的字符串值。并分别为字符串值中等和大。预先感谢 – Piyush 2011-04-05 11:24:29

回答

0

即使我是拉解析器的大粉丝,这次我会推荐使用SAX解析器。与pull语法相比,它会带来一些开销,但是您的DefaultHandler实现可能相当简单,因为只能聆听您感兴趣的几个元素及其内容。

使用pull语法分析器,问题不在于找到开始标记 - 而是在找到相关的结束标记 - 同时您应该同时搜索子标记/内容。我猜所有这些会最终进入这样的递归,而且很难处理,并且如果xml有一些意想不到的内容容易出错,您会发现SAX中基于堆栈的解析速度更快。

此外,如果您的xml大小以兆字节计数,并且您可以在服务器上进行更改,则可能会发现使用GZIPped流更加舒适。如果数据来自socket/http/etc。

+0

thnx ...我知道它可以用SAX解析器完成.../.Bt是否有可能使用Pull Parser可以实现相同的结果 – Piyush 2011-04-05 12:43:49

+0

很明显这是可能的,但它会更容易如果你的XML不包含例如嵌入元素,但他们被命名为每个级别不同,可能更详细地描述内容。这种方式跳过无趣的内容会更清楚一些,因为您可以做到这一点,直到某个结束元素,并且不必担心同时解析级别/深度。 – harism 2011-04-05 13:24:08

相关问题