2015-01-16 5 views
0

Я использую teamforge в моем приложении Rails, которое хорошо работает.Почему я не могу разобрать XML-формат?

Теперь я хочу проверить его, поэтому я использую драгоценный камень savon_spec. Я кормлю Soap XML в качестве светильников.

Я не получаю желаемое поведение XML, который анализируется для XML, который я взял непосредственно из инструмента для мыльного интерфейса, но когда я удаляю форматирование, он работает как шарм.

Я не уверен, почему он не работает. Внутри, teamforge и савон используют Нокогири.

вложу как XML:

Если удалить все пробелы и превратить его в одну строку, она работает, как ожидалось.

Я изначально пытался найти, почему XML не работал, тогда я смог сузить до такой степени, что если я поместил неформатированный XML, он будет работать.

Почему XML-формат Soap UI разбивает разбор?

  1. Я просто хотел увидеть, что на самом деле ломается, поэтому я начал вводить отступы на один шаг за раз. Это формат, который, наконец, работает - xml.

  2. Затем следующий формат со следующей строкой с отступом. Это поврежденный - breakingformatxml

+0

Где синтаксический неудачу? На стороне TeamForge? Если это так, похоже, что они плохо разбираются. Является ли проблема на стороне teamforge gem? Если это так, похоже, что они плохо разбираются. –

+0

Я просто смотрю на эту часть. Я обновил мои дальнейшие результаты отладки –

ответ

0

Обнаружили причину.

Ответ заключается в том, что nokogiri xpath nokogiri-1.6.5/lib/nokogiri/xml/node.rb возвращает NodeSet, который имеет массив узлов. При создании массива он уважает каждую новую строку и считает его допустимым узлом и устанавливает его как TextNode. так что произошло то, что бриллиантовый рубиновый бриллиант Teamforge не ожидал и не обрабатывал этот случай возможной новой строки в xml, поэтому разбор xml и преобразование в объект прерывались, поскольку в объекте нет такого атрибута, как текст.

некоторые, как я также столкнулась с такой же problem