Nsxmlparser 无法检测到某些元素

Nsxmlparser fails to detect some elements

我正在使用 NSXMLPARSER 来解析 upnp soap 响应。虽然它可以检测到其委托中的某些元素,但无法检测到其他元素。我对提取 upnp:albumArtURI 元素特别感兴趣,但失败了。有人知道吗?

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetPositionInfoResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><Track>1</Track><TrackDuration>0:04:34</TrackDuration><TrackMetaData><DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:r="urn:schemas-rinconnetworks-com:metadata-1-0/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"><item id="-1" parentID="-1" restricted="true"><res protocolInfo="sonos.com-http:*:application/ogg:*" duration="0:04:34">x-sonos-http:4823265.ogg?sid=23&amp;flags=32&amp;sn=3</res><r:streamContent></r:streamContent><upnp:albumArtURI>/getaa?s=1&amp;u=x-sonos-http:4823265.ogg?sid=23&flags=32&sn=3</upnp:albumArtURI><dc:title>明年今日</dc:title><upnp:class>object.item.audioItem.musicTrack</upnp:class><dc:creator>陈奕迅</dc:creator><upnp:album>陈奕迅 广东精选 EASON CHAN CANTONESE COLLECTION</upnp:album></item></DIDL-Lite></TrackMetaData><TrackURI>x-sonos-http:4823265.ogg?sid=23&flags=32&sn=3</TrackURI><RelTime>0:00:06</RelTime><AbsTime>NOT_IMPLEMENTED</AbsTime><RelCount>2147483647</RelCount><AbsCount>2147483647</AbsCount></u:GetPositionInfoResponse></s:Body></s:Envelope>

已排序。最初,我对 soap 响应进行了编码以替换“&Quot;”在解析之前使用“”等,因为我无法成功解析它,但它以某种方式在响应中添加了一些错误。

我无法成功解析原始响应的原因是它的结构复杂。现在我已经使用 XMLDictionary 解析原始响应,首先提取 "trackMetaData" 字符,其中 "upnp:albumArtURI" 是内部元素之一,然后再次使用 XMLDictionary 解析 "trackMetaData" 以提取字符"upnp:albumArtURI"。

坚持了 2 周,现在解决了!!!开心!