Я полностью сбит с толку разбором XMLarty, казалось бы, идентичного XML.Я выполняю тот же вызов GET (получить параметры функции) для веб-службы, но для другого ресурса (/ channel / 3 / functions / 58 / vs. / channel / 6 / functions / 106 /).Я использую HTTParty, чтобы сделать звонок.Проблема в том, что он интерпретирует результаты по-разному, и я не могу найти никаких различий в возвращаемом XML, которые бы объяснили разницу.
Вот что происходит в моем первом обращении к / channel / 3 / functions / 58 /
Ответ XML:
<functionsResult xmlns="http://www.w3.org/2005/Atom">
<function>
<id>58</id>
<name>API: movies</name>
<type>trigger</type>
<description></description>
<tags></tags>
<status>active</status>
<parameters>
<parameter name="movie_query" label="Movie Query" type="xsd:string" required="false" default=""/>
<parameter name="critics-pick" label="Critics Pick" type="xsd:string" required="false" default=""/>
<parameter name="thousand-best" label="Thousand Best" type="xsd:string" required="false" default=""/>
<parameter name="dvds" label="Dvds" type="xsd:string" required="false" default=""/>
<parameter name="reviewer" label="Reviewer" type="xsd:string" required="false" default=""/>
<parameter name="publication-date" label="Publication Date" type="xsd:date" required="false" default=""/>
<parameter name="opening-date" label="Opening Date" type="xsd:date" required="false" default=""/>
</parameters>
<link rel="self" title="This Function" method="GET" type="application/xml" href="/channels/3/functions/58/"/>
<link rel="related" title="Function Channel" method="GET" type="application/xml" href="/channels/3/"/>
</function>
</functionsResult>
Хэш, который HTTParty возвращает мнев порядке и выглядит следующим образом (выходные данные отладки):
functionsResult:
function:
id: '58'
name: ! 'API: movies'
type: trigger
description: !!null
tags: !!null
status: active
parameters:
parameter:
- name: movie_query
label: Movie Query
type: xsd:string
required: 'false'
default: ''
- name: critics-pick
label: Critics Pick
type: xsd:string
required: 'false'
default: ''
- name: thousand-best
label: Thousand Best
type: xsd:string
required: 'false'
default: ''
- name: dvds
label: Dvds
type: xsd:string
required: 'false'
default: ''
- name: reviewer
label: Reviewer
type: xsd:string
required: 'false'
default: ''
- name: publication-date
label: Publication Date
type: xsd:date
required: 'false'
default: ''
- name: opening-date
label: Opening Date
type: xsd:date
required: 'false'
default: ''
link:
- rel: self
title: This Function
method: GET
type: application/xml
href: /channels/3/functions/58/
- rel: related
title: Function Channel
method: GET
type: application/xml
href: /channels/3/
XML для другого ресурса почти идентичен по своей структуре:
<functionsResult xmlns="http://www.w3.org/2005/Atom">
<function>
<id>106</id>
<name>search</name>
<type>trigger</type>
<description/>
<tags/>
<status>active</status>
<parameters>
<parameter name="callback" label="Callback" type="string" required="false" default=""/>
<parameter name="geocode" label="Geocode" type="string" required="false" default=""/>
<parameter name="lang" label="Lang" type="string" required="false" default=""/>
<parameter name="locale" label="Locale" type="string" required="false" default=""/>
<parameter name="page" label="Page" type="string" required="false" default=""/>
<parameter name="result_type" label="Result Type" type="string" required="false" default=""/>
<parameter name="rpp" label="Rpp" type="string" required="false" default=""/>
<parameter name="show_user" label="Show User" type="string" required="false" default=""/>
<parameter name="until" label="Until" type="string" required="false" default=""/>
<parameter name="since_id" label="Since Id" type="string" required="false" default=""/>
<parameter name="include_entities" label="Include Entities" type="string" required="false" default=""/>
</parameters>
<link rel="self" title="This Function" method="GET" type="application/xml" href="/channels/6/functions/106/"/>
<link rel="related" title="Function Channel" method="GET" type="application/xml" href="/channels/6/"/>
</function>
</functionsResult>
Однако возвращаемый хэш возвращаетпустой массив для «параметров» (отладочный вывод)!
functionsResult:
function:
id: '106'
name: ! 'search'
type: trigger
description: !!null
tags: !!null
status: active
parameters:
parameter:
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
link:
- rel: self
title: This Function
method: GET
type: application/xml
href: /channels/6/functions/106/
- rel: related
title: Function Channel
method: GET
type: application/xml
href: /channels/6/
Единственное, о чем я могу думать, это то, что параметры во втором вызове GET имеют подчеркивание в некоторых атрибутах ???Это кажется маловероятным объяснением.Любая помощь очень ценится.