在 iPhone 上使用带有 NOAA 数据的 NSXMLParser 时出现问题

Posted

技术标签:

【中文标题】在 iPhone 上使用带有 NOAA 数据的 NSXMLParser 时出现问题【英文标题】:Problem using NSXMLParser with NOAA data on iPhone 【发布时间】:2011-01-27 19:00:13 【问题描述】:

谁能帮我看看为什么 NSXMLParser 没有导致这些方法

parser:didStartElement:namespaceURI:qualifiedName:attributes:
parser:didEndElement:namespaceURI:qualifiedName:attributes:

触发以下部分数据:

<?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:NDFDgenResponse xmlns:ns1=""><dwmlOut xsi:type="xsd:string"><?xml version="1.0"?>
<dwml version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.nws.noaa.gov/forecasts/xml/DWMLgen/schema/DWML.xsd">

(不包括身体)

</dwml>
</dwmlOut></ns1:NDFDgenResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>

我不是 XML 专家,但对我来说,&lt;dwml&gt;&lt;/dwml&gt; 部分看起来只是一个常规元素,可以像之前的部分一样进行解析。

确实得到两个 parser:parseErrorOccurred: 错误,#200 和 #201,但它们发生在 &lt;SOAP-ENV:Body&gt; 元素的解析过程中,而不是 &lt;dwml&gt; 元素,所以我不确定它们是否相关。感谢您能给我的任何帮助。

更新:我的一个朋友离线告诉我上面的数据有几个错误。我不明白为什么 NOAA 会发送格式错误的 XML —— 解析它有什么秘密吗?

【问题讨论】:

可能是因为那里有两个&lt;?xml?&gt; 标签? 嗯——好点子。我不熟悉 ? 开头的样式标签。应该吗?甚至在那里? 哦,顺便说一句:这不是我的 xml —— 那是来自 NOAA SOAP 服务的内容。以防万一不清楚。 【参考方案1】:

这是一个 SOAP 网络服务,您可能想试试这个:http://code.google.com/p/wsdl2objc/

【讨论】:

问题不是从 NOAA 获取数据,而是使用 iPhone 的 NSXMLParser 类解析 XML。你能帮我解决这个问题吗?

以上是关于在 iPhone 上使用带有 NOAA 数据的 NSXMLParser 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

无法从 NOAA API 调用中获取数据

NOAA 使用 python 的每小时数据

如何使用 NOAA API 查询给定坐标集的过去天气数据

下载 NOAA 数据

Nestled Loop 无法从 NOAA 收集数据

美国NOAA/AVHRR遥感数据