我在我的Rails应用中使用teamforge,效果很好。
现在我想测试它,所以我使用的是savon_spec gem。我正在将Soap XML作为固定装置提供。
我没有得到为我直接从soap UI工具中获取的XML解析所需的XML行为,但当我删除格式时,它就像魅力一样。
我不确定为什么它不起作用。在内部,teamforge和savon使用Nokogiri。
我将把两个XML:
如果删除所有空格并将其转换为单行,则按预期工作。
我最初很难找到为什么XML没有工作,然后我能够缩小到如果我把无格式的XML工作的程度。
为什么Soap UI格式的XML会破坏解析?
我只想看看实际上是什么,所以我开始一步一步地引入缩进。这是最终有效的格式 - xml。
然后下一行格式下一行缩进。这是破碎的 - breakingformatxml
答案 0 :(得分:0)
找出原因。
答案是nokogiri xpath nokogiri-1.6.5/lib/nokogiri/xml/node.rb返回一个包含节点数组的NodeSet。在创建数组时,它会尊重每个换行符并将其视为有效节点并将其设置为TextNode。所发生的事情是teamforge ruby gem没有预料到或处理xml中可能的新行的这种情况,所以解析xml并转换为object会因为对象中没有像text这样的属性而破坏。
像我这样的人也遇到了类似的problem